Created
June 14, 2024 05:30
-
-
Save TharmiganK/a8ec962a6168d11b6496a1c84a0a5558 to your computer and use it in GitHub Desktop.
Album API OpenAPI specification
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
openapi: 3.0.1 | |
info: | |
title: Api | |
version: 0.1.0 | |
servers: | |
- url: "{server}:{port}/api" | |
variables: | |
server: | |
default: http://localhost | |
port: | |
default: "9999" | |
paths: | |
/albums/{id}: | |
get: | |
operationId: getAlbumsId | |
description: Get album by ID | |
parameters: | |
- name: id | |
in: path | |
required: true | |
description: Album ID | |
schema: | |
type: string | |
- name: API-VERSION | |
in: header | |
description: API Version | |
schema: | |
$ref: '#/components/schemas/VERSION' | |
default: V1 | |
responses: | |
"200": | |
description: Album found | |
headers: | |
req-id: | |
required: true | |
description: Request ID | |
schema: | |
type: integer | |
format: int64 | |
api-version: | |
required: true | |
description: API Version | |
schema: | |
type: string | |
session-id: | |
required: true | |
description: Session ID | |
schema: | |
type: string | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Album' | |
"404": | |
description: Album not found | |
headers: | |
req-id: | |
required: true | |
description: Request ID | |
schema: | |
type: integer | |
format: int64 | |
api-version: | |
required: true | |
description: API Version | |
schema: | |
type: string | |
session-id: | |
required: true | |
description: Session ID | |
schema: | |
type: string | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/ErrorMessage' | |
/albums: | |
get: | |
operationId: getAlbums | |
description: Get albums by genre | |
parameters: | |
- name: genre | |
in: query | |
required: true | |
description: Album genre | |
schema: | |
type: string | |
- name: API-VERSION | |
in: header | |
description: API Version | |
schema: | |
$ref: '#/components/schemas/VERSION' | |
default: V1 | |
responses: | |
"200": | |
description: Albums found | |
headers: | |
req-id: | |
required: true | |
description: Request ID | |
schema: | |
type: integer | |
format: int64 | |
api-version: | |
required: true | |
description: API Version | |
schema: | |
type: string | |
session-id: | |
required: true | |
description: Session ID | |
schema: | |
type: string | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/Album' | |
"404": | |
description: No albums found with genre | |
headers: | |
req-id: | |
required: true | |
description: Request ID | |
schema: | |
type: integer | |
format: int64 | |
api-version: | |
required: true | |
description: API Version | |
schema: | |
type: string | |
session-id: | |
required: true | |
description: Session ID | |
schema: | |
type: string | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/ErrorMessage' | |
post: | |
operationId: postAlbums | |
description: Create a new album | |
parameters: | |
- name: API-VERSION | |
in: header | |
description: API Version | |
schema: | |
$ref: '#/components/schemas/VERSION' | |
default: V1 | |
requestBody: | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Album' | |
required: true | |
responses: | |
"201": | |
description: Album created | |
headers: | |
req-id: | |
required: true | |
description: Request ID | |
schema: | |
type: integer | |
format: int64 | |
api-version: | |
required: true | |
description: API Version | |
schema: | |
type: string | |
session-id: | |
required: true | |
description: Session ID | |
schema: | |
type: string | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Album' | |
"409": | |
description: Album already exists | |
headers: | |
req-id: | |
required: true | |
description: Request ID | |
schema: | |
type: integer | |
format: int64 | |
api-version: | |
required: true | |
description: API Version | |
schema: | |
type: string | |
session-id: | |
required: true | |
description: Session ID | |
schema: | |
type: string | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/ErrorMessage' | |
/albums-all: | |
get: | |
operationId: getAlbumsAll | |
description: Get all albums | |
parameters: | |
- name: API-VERSION | |
in: header | |
required: true | |
description: API Version | |
schema: | |
$ref: '#/components/schemas/VERSION' | |
responses: | |
"200": | |
description: Albums found | |
headers: | |
req-id: | |
required: true | |
description: Request ID | |
schema: | |
type: integer | |
format: int64 | |
api-version: | |
required: true | |
description: API Version | |
schema: | |
type: string | |
session-id: | |
required: true | |
description: Session ID | |
schema: | |
type: string | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/Album' | |
"404": | |
description: No albums found | |
headers: | |
req-id: | |
required: true | |
description: Request ID | |
schema: | |
type: integer | |
format: int64 | |
api-version: | |
required: true | |
description: API Version | |
schema: | |
type: string | |
session-id: | |
required: true | |
description: Session ID | |
schema: | |
type: string | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/ErrorMessage' | |
post: | |
operationId: postAlbumsAll | |
description: Create new albums | |
parameters: | |
- name: private | |
in: query | |
description: Private albums | |
schema: | |
type: string | |
nullable: true | |
- name: API-VERSION | |
in: header | |
description: API Version | |
schema: | |
$ref: '#/components/schemas/VERSION' | |
default: V1 | |
requestBody: | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/Album' | |
required: true | |
responses: | |
"201": | |
description: Albums created | |
headers: | |
req-id: | |
required: true | |
description: Request ID | |
schema: | |
type: integer | |
format: int64 | |
api-version: | |
required: true | |
description: API Version | |
schema: | |
type: string | |
session-id: | |
required: true | |
description: Session ID | |
schema: | |
type: string | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/Album' | |
"409": | |
description: Albums already exist | |
headers: | |
req-id: | |
required: true | |
description: Request ID | |
schema: | |
type: integer | |
format: int64 | |
api-version: | |
required: true | |
description: API Version | |
schema: | |
type: string | |
session-id: | |
required: true | |
description: Session ID | |
schema: | |
type: string | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/ErrorMessage' | |
components: | |
schemas: | |
Album: | |
required: | |
- artist | |
- genre | |
- id | |
- name | |
type: object | |
properties: | |
id: | |
type: string | |
description: Album ID | |
name: | |
type: string | |
description: Album name | |
artist: | |
type: string | |
description: Album artist | |
genre: | |
type: string | |
description: Album genre | |
additionalProperties: false | |
ErrorMessage: | |
required: | |
- message | |
type: object | |
properties: | |
message: | |
type: string | |
description: Error message | |
additionalProperties: | |
type: string | |
VERSION: | |
type: string | |
description: API Version | |
enum: | |
- V1 | |
- V2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment