Skip to content

RipperMode/api-toy

Repository files navigation

2️⃣ README

# api-test

Minimal Go API using **Gin + SQLite + worker queue**.

## Stack

- Go `1.22`
- Gin (`github.com/gin-gonic/gin`)
- SQLite (modernc.org/sqlite)
- Worker queue (internal/worker)
- Tests for handlers + queue, benchmarks for queue

## Quickstart

```bash
go mod download
go run ./cmd/api

API

Create task POST /tasks Request:

{ "title": "Buy milk" }

Responses:

201 Created – {"id":1,"title":"Buy milk","done":false} 400 Bad Request – invalid JSON or missing title 500 Internal Server Error – DB error List tasks GET /tasks

Response:

[
  { "id": 1, "title": "Buy milk", "done": false }
]

Get task

GET /tasks/:id 200 OK – task JSON 400 Bad Request – invalid ID 404 Not Found – missing task

Update task

PUT /tasks/:id Request:

{
  "title": "Buy eggs",
  "done": true
}

200 OK – updated task 400/404 on invalid ID or missing task

Delete task

DELETE /tasks/:id 204 No Content – removed 404 Not Found – missing task

Tests

Local test commands:

All tests, no race (Windows)

go test ./... -count=1 -v

Handlers only

go test ./internal/handlers -count=1 -v

Worker queue only

go test ./internal/worker -count=1 -v

In CI (Linux), tests also run with -race.

About

Simple api to goof around

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published