134 lines
3.0 KiB
YAML
134 lines
3.0 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: Todo CRUD API
|
|
version: 1.0.0
|
|
servers:
|
|
- url: https://api.example.com/v1
|
|
paths:
|
|
/todos:
|
|
get:
|
|
summary: Get all todos
|
|
responses:
|
|
'200':
|
|
description: A list of todos
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Todo'
|
|
post:
|
|
summary: Create a new todo
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TodoCreate'
|
|
responses:
|
|
'201':
|
|
description: Todo created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Todo'
|
|
/todos/{todoId}:
|
|
get:
|
|
summary: Get a todo by ID
|
|
parameters:
|
|
- name: todoId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Todo details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Todo'
|
|
'404':
|
|
description: Todo not found
|
|
put:
|
|
summary: Update a todo by ID
|
|
parameters:
|
|
- name: todoId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TodoUpdate'
|
|
responses:
|
|
'200':
|
|
description: Todo updated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Todo'
|
|
'404':
|
|
description: Todo not found
|
|
delete:
|
|
summary: Delete a todo by ID
|
|
parameters:
|
|
- name: todoId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'204':
|
|
description: Todo deleted successfully
|
|
'404':
|
|
description: Todo not found
|
|
|
|
components:
|
|
schemas:
|
|
Todo:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
example: "1"
|
|
title:
|
|
type: string
|
|
example: "Buy groceries"
|
|
description:
|
|
type: string
|
|
example: "Milk, Bread, Eggs"
|
|
completed:
|
|
type: boolean
|
|
example: false
|
|
required:
|
|
- id
|
|
- title
|
|
- completed
|
|
TodoCreate:
|
|
type: object
|
|
properties:
|
|
title:
|
|
type: string
|
|
example: "Buy groceries"
|
|
description:
|
|
type: string
|
|
example: "Milk, Bread, Eggs"
|
|
required:
|
|
- title
|
|
TodoUpdate:
|
|
type: object
|
|
properties:
|
|
title:
|
|
type: string
|
|
example: "Buy more groceries"
|
|
description:
|
|
type: string
|
|
example: "Milk, Bread, Eggs, Cheese"
|
|
completed:
|
|
type: boolean
|
|
example: true
|