139 lines
3.1 KiB
YAML
139 lines
3.1 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: User CRUD API
|
|
version: 1.0.0
|
|
servers:
|
|
- url: https://api.example.com/v1
|
|
paths:
|
|
/users:
|
|
get:
|
|
summary: Get all users
|
|
responses:
|
|
'200':
|
|
description: A list of users
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/User'
|
|
post:
|
|
summary: Create a new user
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UserCreate'
|
|
responses:
|
|
'201':
|
|
description: User created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
/users/{userId}:
|
|
get:
|
|
summary: Get a user by ID
|
|
parameters:
|
|
- name: userId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: User details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
'404':
|
|
description: User not found
|
|
put:
|
|
summary: Update a user by ID
|
|
parameters:
|
|
- name: userId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UserUpdate'
|
|
responses:
|
|
'200':
|
|
description: User updated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
'404':
|
|
description: User not found
|
|
delete:
|
|
summary: Delete a user by ID
|
|
parameters:
|
|
- name: userId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'204':
|
|
description: User deleted successfully
|
|
'404':
|
|
description: User not found
|
|
|
|
components:
|
|
schemas:
|
|
User:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
example: "123"
|
|
username:
|
|
type: string
|
|
example: "johndoe"
|
|
email:
|
|
type: string
|
|
format: email
|
|
example: "johndoe@example.com"
|
|
required:
|
|
- id
|
|
- username
|
|
- email
|
|
UserCreate:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
example: "johndoe"
|
|
email:
|
|
type: string
|
|
format: email
|
|
example: "johndoe@example.com"
|
|
password:
|
|
type: string
|
|
format: password
|
|
required:
|
|
- username
|
|
- email
|
|
- password
|
|
UserUpdate:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
example: "john_doe_updated"
|
|
email:
|
|
type: string
|
|
format: email
|
|
example: "johnupdated@example.com"
|
|
required:
|
|
- username
|
|
- email
|