Skip to content

Commit 4ed3982

Browse files
committed
init: add starter code
0 parents  commit 4ed3982

4 files changed

Lines changed: 61 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: CI
2+
on:
3+
push:
4+
branches: [main]
5+
pull_request:
6+
branches: [main]
7+
jobs:
8+
test:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v4
12+
- uses: actions/setup-node@v4
13+
with:
14+
node-version: '20'
15+
- run: npm install
16+
- run: npm test

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Demo API Backend
2+
3+
A minimal Node.js + TypeScript REST API used for OpenDev E2E testing.
4+
5+
## Endpoints
6+
- GET /health — health check
7+
- GET /api/v1/users — list users
8+
9+
## Development
10+
npm install && npm run dev

package.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "demo-api-backend",
3+
"version": "0.1.0",
4+
"scripts": {
5+
"dev": "ts-node src/index.ts",
6+
"build": "tsc",
7+
"test": "jest"
8+
},
9+
"dependencies": {
10+
"express": "^4.18.0"
11+
},
12+
"devDependencies": {
13+
"@types/express": "^4.17.0",
14+
"@types/node": "^20.0.0",
15+
"typescript": "^5.0.0",
16+
"ts-node": "^10.9.0",
17+
"jest": "^29.0.0"
18+
}
19+
}

src/index.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import express from 'express'
2+
3+
const app = express()
4+
const PORT = process.env.PORT ?? 3000
5+
6+
app.get('/health', (_req, res) => {
7+
res.json({ status: 'ok', service: 'demo-api-backend' })
8+
})
9+
10+
app.get('/api/v1/users', (_req, res) => {
11+
res.json({ data: [{ id: '1', name: 'Alice' }, { id: '2', name: 'Bob' }] })
12+
})
13+
14+
app.listen(PORT, () => {
15+
console.log(`API running on port ${PORT}`)
16+
})

0 commit comments

Comments
 (0)