Files
IDP-Backend/api/user/user.yaml
2025-07-25 01:40:34 +03:00

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