Files
mohamed-node-mod-1/openapi.yaml

351 lines
8.1 KiB
YAML

openapi: 3.0.3
info:
title: mohamed-node-mod-1
description: Modernized mohamed-node-mod-1 service
version: 1.0.0
servers:
- url: https://mohamed-node-mod-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