351 lines
8.1 KiB
YAML
351 lines
8.1 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
title: test-siva-node-1
|
|
description: Modernized test-siva-node-1 service
|
|
version: 1.0.0
|
|
servers:
|
|
- url: https://test-siva-node-1.kyndemo.live
|
|
description: Production
|
|
- url: http://localhost:3000
|
|
description: Local development
|
|
paths:
|
|
/health:
|
|
get:
|
|
summary: Health check
|
|
operationId: getHealth
|
|
tags:
|
|
- System
|
|
responses:
|
|
'200':
|
|
description: Healthy
|
|
/api/articles:
|
|
get:
|
|
summary: GET /api/articles
|
|
operationId: getApi_articles
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
post:
|
|
summary: POST /api/articles
|
|
operationId: postApi_articles
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
/api/articles/feed:
|
|
get:
|
|
summary: GET /api/articles/feed
|
|
operationId: getApi_articles_feed
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
/api/articles/{slug}:
|
|
get:
|
|
summary: GET /api/articles/{slug}
|
|
operationId: getApi_articles_slug
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
parameters:
|
|
- name: slug
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
put:
|
|
summary: PUT /api/articles/{slug}
|
|
operationId: putApi_articles_slug
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
parameters:
|
|
- name: slug
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
delete:
|
|
summary: DELETE /api/articles/{slug}
|
|
operationId: deleteApi_articles_slug
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
parameters:
|
|
- name: slug
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
/api/articles/{slug}/comments:
|
|
get:
|
|
summary: GET /api/articles/{slug}/comments
|
|
operationId: getApi_articles_slug_comments
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
parameters:
|
|
- name: slug
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
post:
|
|
summary: POST /api/articles/{slug}/comments
|
|
operationId: postApi_articles_slug_comments
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
parameters:
|
|
- name: slug
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
/api/articles/{slug}/comments/{id}:
|
|
delete:
|
|
summary: DELETE /api/articles/{slug}/comments/{id}
|
|
operationId: deleteApi_articles_slug_comments_id
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
parameters:
|
|
- name: slug
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
/api/articles/{slug}/favorite:
|
|
post:
|
|
summary: POST /api/articles/{slug}/favorite
|
|
operationId: postApi_articles_slug_favorite
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
parameters:
|
|
- name: slug
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
delete:
|
|
summary: DELETE /api/articles/{slug}/favorite
|
|
operationId: deleteApi_articles_slug_favorite
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
parameters:
|
|
- name: slug
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
/api/profiles/{username}:
|
|
get:
|
|
summary: GET /api/profiles/{username}
|
|
operationId: getApi_profiles_username
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
/api/profiles/{username}/follow:
|
|
post:
|
|
summary: POST /api/profiles/{username}/follow
|
|
operationId: postApi_profiles_username_follow
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
delete:
|
|
summary: DELETE /api/profiles/{username}/follow
|
|
operationId: deleteApi_profiles_username_follow
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
/api/tags:
|
|
get:
|
|
summary: GET /api/tags
|
|
operationId: getApi_tags
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
/api/user:
|
|
get:
|
|
summary: GET /api/user
|
|
operationId: getApi_user
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
put:
|
|
summary: PUT /api/user
|
|
operationId: putApi_user
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
/api/users:
|
|
post:
|
|
summary: POST /api/users
|
|
operationId: postApi_users
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
/api/users/login:
|
|
post:
|
|
summary: POST /api/users/login
|
|
operationId: postApi_users_login
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
'400':
|
|
description: Bad request
|
|
'401':
|
|
description: Unauthorized
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
/metrics:
|
|
get:
|
|
summary: Prometheus metrics
|
|
operationId: getMetrics
|
|
tags:
|
|
- System
|
|
responses:
|
|
'200':
|
|
description: text/plain; Prometheus exposition format
|