initial commit
This commit is contained in:
commit
213b1aad6c
714 changed files with 590265 additions and 0 deletions
273
doc/api.yaml
Normal file
273
doc/api.yaml
Normal file
|
@ -0,0 +1,273 @@
|
|||
openapi: 3.0.0
|
||||
servers:
|
||||
- url: "http://localhost:3000"
|
||||
info:
|
||||
title: Fantastic Coffee (decaffeinated)
|
||||
description: Fantastic Coffee (decaffeinated), the skeleton project for Web and Software architecture course
|
||||
version: 1.0.0
|
||||
paths:
|
||||
/status:
|
||||
parameters:
|
||||
- $ref: "#/components/parameters/XAppBuild"
|
||||
- $ref: "#/components/parameters/XAppVersion"
|
||||
- $ref: "#/components/parameters/XAppLanguage"
|
||||
- $ref: "#/components/parameters/XAppPlatform"
|
||||
get:
|
||||
tags: ["General"]
|
||||
operationId: getStatusMessage
|
||||
summary: Get status message for the user about issues / updates
|
||||
description: |-
|
||||
The response contains a status message meant for the user. It might
|
||||
contains information about current technical issues, update messages
|
||||
or general information.
|
||||
responses:
|
||||
"200":
|
||||
description: Status message available
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/StatusInfo"
|
||||
"400": { $ref: "#/components/responses/BadRequest" }
|
||||
"500": { $ref: "#/components/responses/InternalServerError" }
|
||||
|
||||
/:
|
||||
get:
|
||||
tags: ["Group 1"]
|
||||
operationId: index
|
||||
summary: Get an index
|
||||
description: |-
|
||||
This is an example of an index API description
|
||||
responses:
|
||||
"200":
|
||||
description: Successful
|
||||
"400": { $ref: "#/components/responses/BadRequest" }
|
||||
"500": { $ref: "#/components/responses/InternalServerError" }
|
||||
/context:
|
||||
parameters:
|
||||
- $ref: "#/components/parameters/XAppBuild"
|
||||
- $ref: "#/components/parameters/XAppVersion"
|
||||
- $ref: "#/components/parameters/XAppLanguage"
|
||||
- $ref: "#/components/parameters/XAppPlatform"
|
||||
post:
|
||||
tags: ["Group 1"]
|
||||
operationId: getContext
|
||||
summary: Another API example
|
||||
description: |-
|
||||
Example description 2
|
||||
responses:
|
||||
"200":
|
||||
description: Request ok
|
||||
headers:
|
||||
X-Access-Token:
|
||||
description: Access token for authenticated requests
|
||||
schema: { type: string }
|
||||
"500": { $ref: "#/components/responses/InternalServerError" }
|
||||
/authenticated:
|
||||
parameters:
|
||||
- $ref: "#/components/parameters/XAppBuild"
|
||||
- $ref: "#/components/parameters/XAppVersion"
|
||||
- $ref: "#/components/parameters/XAppLanguage"
|
||||
- $ref: "#/components/parameters/XAppPlatform"
|
||||
get:
|
||||
tags: ["Group 2"]
|
||||
operationId: getAuthenticatedExample
|
||||
summary: Get an endpoint with authentication
|
||||
description: |-
|
||||
Get an endpoint with auth
|
||||
security:
|
||||
- LegacyAuth: []
|
||||
- AppToken: []
|
||||
responses:
|
||||
"200":
|
||||
description: Logout successful
|
||||
"500": { $ref: "#/components/responses/InternalServerError" }
|
||||
|
||||
/pictures/{cat}:
|
||||
parameters:
|
||||
- $ref: "#/components/parameters/XAppBuild"
|
||||
- $ref: "#/components/parameters/XAppVersion"
|
||||
- $ref: "#/components/parameters/XAppLanguage"
|
||||
- $ref: "#/components/parameters/XAppPlatform"
|
||||
- $ref: "#/components/parameters/cat"
|
||||
get:
|
||||
tags: ["Cat pictures"]
|
||||
operationId: getCatFromPicture
|
||||
summary: Example of a parameter in URL
|
||||
description: |-
|
||||
Example of a parameter in URL
|
||||
security:
|
||||
- LegacyAuth: []
|
||||
responses:
|
||||
"200":
|
||||
description: Student picture found
|
||||
content:
|
||||
image/png:
|
||||
schema:
|
||||
type: string
|
||||
format: binary
|
||||
example: Picture binary file
|
||||
"404":
|
||||
description: Student picture not found
|
||||
"500": { $ref: "#/components/responses/InternalServerError" }
|
||||
|
||||
|
||||
/autofeeder/{cat}:
|
||||
parameters:
|
||||
- $ref: "#/components/parameters/XAppBuild"
|
||||
- $ref: "#/components/parameters/XAppVersion"
|
||||
- $ref: "#/components/parameters/XAppLanguage"
|
||||
- $ref: "#/components/parameters/XAppPlatform"
|
||||
- $ref: "#/components/parameters/cat"
|
||||
put:
|
||||
tags: ["Autofeeder"]
|
||||
operationId: createCatAutofeeder
|
||||
summary: Example of PUT operation
|
||||
security:
|
||||
- LegacyAuth: []
|
||||
responses:
|
||||
"200":
|
||||
description: Auto feed enabled
|
||||
"400": { $ref: "#/components/responses/BadRequest" }
|
||||
"500": { $ref: "#/components/responses/InternalServerError" }
|
||||
delete:
|
||||
tags: ["Autofeeder"]
|
||||
operationId: deleteCatAutofeeder
|
||||
summary: Example of DELETE operation
|
||||
security:
|
||||
- LegacyAuth: []
|
||||
responses:
|
||||
"200":
|
||||
description: Auto feed disabled
|
||||
"400": { $ref: "#/components/responses/BadRequest" }
|
||||
"500": { $ref: "#/components/responses/InternalServerError" }
|
||||
|
||||
/session/login:
|
||||
parameters:
|
||||
- $ref: "#/components/parameters/XAppBuild"
|
||||
- $ref: "#/components/parameters/XAppVersion"
|
||||
- $ref: "#/components/parameters/XAppLanguage"
|
||||
- $ref: "#/components/parameters/XAppPlatform"
|
||||
post:
|
||||
tags: ["Session management"]
|
||||
operationId: login
|
||||
summary: Log-in into system
|
||||
description: |-
|
||||
Perform a log-in action using username and password credentials.
|
||||
Returns a token which can be used in authenticated requests.
|
||||
requestBody:
|
||||
content:
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
userid:
|
||||
type: string
|
||||
pattern: '^[a-zA-Z0-9]+$'
|
||||
minLength: 3
|
||||
maxLength: 255
|
||||
password:
|
||||
type: string
|
||||
pattern: '^.*?$'
|
||||
minLength: 8
|
||||
maxLength: 255
|
||||
responses:
|
||||
"200":
|
||||
description: Login successful
|
||||
headers:
|
||||
X-Access-Token:
|
||||
description: Access token for authenticated requests
|
||||
schema: { type: string }
|
||||
"400": { $ref: "#/components/responses/BadRequest" }
|
||||
"403":
|
||||
description: Login failed
|
||||
headers:
|
||||
X-Message:
|
||||
description: Error message
|
||||
schema: { type: string }
|
||||
"500": { $ref: "#/components/responses/InternalServerError" }
|
||||
|
||||
|
||||
components:
|
||||
schemas:
|
||||
StatusInfo:
|
||||
title: Status Info
|
||||
type: object
|
||||
properties:
|
||||
status:
|
||||
type: string
|
||||
enum:
|
||||
- info
|
||||
- warning
|
||||
- critical
|
||||
- ""
|
||||
title: { type: string }
|
||||
message: { type: string }
|
||||
url: { type: string }
|
||||
|
||||
responses:
|
||||
Unauthorized:
|
||||
description: The access token is missing or it's expired
|
||||
BadRequest:
|
||||
description: The request was not compliant with the documentation (eg. missing fields, etc)
|
||||
InternalServerError:
|
||||
description: The server encountered an internal error. Further info in server logs
|
||||
|
||||
securitySchemes:
|
||||
LegacyAuth:
|
||||
type: apiKey
|
||||
in: header
|
||||
name: X-App-Token
|
||||
description: |-
|
||||
App session token value. This value is sent by the server in the login
|
||||
and session refresh APIs.
|
||||
|
||||
parameters:
|
||||
XAppVersion:
|
||||
schema:
|
||||
type: string
|
||||
pattern: '^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$'
|
||||
minLength: 1
|
||||
maxLength: 10
|
||||
name: X-App-Version
|
||||
in: header
|
||||
required: true
|
||||
description: App human readable version ("semantic version" format)
|
||||
allowEmptyValue: false
|
||||
XAppBuild:
|
||||
schema: { type: integer }
|
||||
name: X-App-Build
|
||||
in: header
|
||||
required: true
|
||||
description: App build number
|
||||
allowEmptyValue: false
|
||||
XAppLanguage:
|
||||
schema:
|
||||
type: string
|
||||
pattern: '^[a-z]{2}([-_][A-Z]{2})?$'
|
||||
minLength: 2
|
||||
maxLength: 5
|
||||
name: X-App-Language
|
||||
in: header
|
||||
required: true
|
||||
description: App language in ISO 639-1 format
|
||||
allowEmptyValue: false
|
||||
XAppPlatform:
|
||||
schema:
|
||||
type: string
|
||||
enum: [ios, android]
|
||||
name: X-App-Platform
|
||||
in: header
|
||||
required: true
|
||||
description: App operating system / platform
|
||||
allowEmptyValue: false
|
||||
cat:
|
||||
schema:
|
||||
type: string
|
||||
pattern: '^[a-zA-Z]+$'
|
||||
minLength: 3
|
||||
maxLength: 10
|
||||
name: cat
|
||||
in: path
|
||||
required: true
|
||||
description: Cat
|
||||
allowEmptyValue: false
|
Loading…
Add table
Add a link
Reference in a new issue