Added the Open API specification document and the Open API generator configuration to the Resources folder in the package.
This commit is contained in:
parent
5aa852a051
commit
c17dc6f22e
@ -15,7 +15,10 @@ let package = Package(
|
|||||||
targets: [
|
targets: [
|
||||||
.target(
|
.target(
|
||||||
name: AmiiboAPI.target,
|
name: AmiiboAPI.target,
|
||||||
path: "Sources"
|
path: "Sources",
|
||||||
|
resources: [
|
||||||
|
.process("Resources")
|
||||||
|
]
|
||||||
),
|
),
|
||||||
.testTarget(
|
.testTarget(
|
||||||
name: AmiiboAPI.test,
|
name: AmiiboAPI.test,
|
||||||
|
4
Resources/openapi-generator-config.yaml
Normal file
4
Resources/openapi-generator-config.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
generate:
|
||||||
|
- types
|
||||||
|
- client
|
||||||
|
accessModifier: internal
|
364
Resources/openapi.yaml
Normal file
364
Resources/openapi.yaml
Normal file
@ -0,0 +1,364 @@
|
|||||||
|
openapi: '3.1.0'
|
||||||
|
info:
|
||||||
|
title: Amiibo API service
|
||||||
|
description: The Amiibo API RESTful service.
|
||||||
|
version: 1.0.0
|
||||||
|
servers:
|
||||||
|
- url: https://www.amiiboapi.com/api
|
||||||
|
description: Amiibo API service (live)
|
||||||
|
paths:
|
||||||
|
/amiibo:
|
||||||
|
get:
|
||||||
|
description: Get a list of all the Amiibo items available in the database.
|
||||||
|
operationId: getAmiibos
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Successful response returning the object that contains a list of Amiibo items.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/AmiiboWrapper'
|
||||||
|
'400':
|
||||||
|
description: Bad Amiibo request.
|
||||||
|
parameters:
|
||||||
|
- name: amiiboSeries
|
||||||
|
in: query
|
||||||
|
description: The Amiibo series identifier or name to filter the response.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
- name: character
|
||||||
|
in: query
|
||||||
|
description: The game character identifier or name to filter the response.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
- name: gameseries
|
||||||
|
in: query
|
||||||
|
description: The game series identifier or name to filter the response.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
- name: id
|
||||||
|
in: query
|
||||||
|
description: The Amiibo identifier to filter the response.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
- name: name
|
||||||
|
in: query
|
||||||
|
description: The Amiibo name to filter the response.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
- name: showgames
|
||||||
|
in: query
|
||||||
|
description: The flag that indicates whether to include information about related games.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
style: form
|
||||||
|
- name: showusage
|
||||||
|
in: query
|
||||||
|
description: The flag that indicates whether to include information about Amiibo usage in related games.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
style: form
|
||||||
|
- name: type
|
||||||
|
in: query
|
||||||
|
description: The Amiibo type to filter the response.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
|
||||||
|
/amiiboseries:
|
||||||
|
get:
|
||||||
|
description: Get a list of all the Amiibo series available in the database.
|
||||||
|
operationId: getAmiiboSeries
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Successful response returning the object that contains a list of Amiibo series.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/TupleWrapper'
|
||||||
|
'400':
|
||||||
|
description: Bad Amiibo series request.
|
||||||
|
'404':
|
||||||
|
description: Amiibo series not found.
|
||||||
|
'500':
|
||||||
|
description: Service currently not available.
|
||||||
|
parameters:
|
||||||
|
- name: key
|
||||||
|
in: query
|
||||||
|
description: The Amiibo series key to filter the response.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
- name: name
|
||||||
|
in: query
|
||||||
|
description: The Amiibo series name to filter the response.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
|
||||||
|
/character:
|
||||||
|
get:
|
||||||
|
description: Get a list of all the game characters available in the database.
|
||||||
|
operationId: getGameCharacters
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Successful response returning the object that contains a list of game characters.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/TupleWrapper'
|
||||||
|
'400':
|
||||||
|
description: Bad game character request.
|
||||||
|
'404':
|
||||||
|
description: Game character not found.
|
||||||
|
'500':
|
||||||
|
description: Service currently not available.
|
||||||
|
parameters:
|
||||||
|
- name: key
|
||||||
|
in: query
|
||||||
|
description: The game character key to filter the response.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
- name: name
|
||||||
|
in: query
|
||||||
|
description: The game character name to filter the response.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
|
||||||
|
/gameseries:
|
||||||
|
get:
|
||||||
|
description: Gets a list of all the game series available in the database.
|
||||||
|
operationId: getGameSeries
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Successful response returning the object that contains a list of game series.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/TupleWrapper'
|
||||||
|
'400':
|
||||||
|
description: Bad game series request.
|
||||||
|
'404':
|
||||||
|
description: Game series not found.
|
||||||
|
'500':
|
||||||
|
description: Service currently not available.
|
||||||
|
parameters:
|
||||||
|
- name: key
|
||||||
|
in: query
|
||||||
|
description: The game series key to filter the response.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
- name: name
|
||||||
|
in: query
|
||||||
|
description: The game series name to filter the response.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
|
||||||
|
/type:
|
||||||
|
get:
|
||||||
|
description: Gets a list of all the Amiibo types available in the database.
|
||||||
|
operationId: getAmiiboTypes
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Successful response returning the object that contains a list of Amiibo types.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/TupleWrapper'
|
||||||
|
'400':
|
||||||
|
description: Bad Amiibo type request.
|
||||||
|
'404':
|
||||||
|
description: Amiibo type not found.
|
||||||
|
'500':
|
||||||
|
description: Service currently not available.
|
||||||
|
parameters:
|
||||||
|
- name: key
|
||||||
|
in: query
|
||||||
|
description: The Amiibo type key to filter the response.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
- name: name
|
||||||
|
in: query
|
||||||
|
description: The Amiibo type name to filter the response.
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
style: form
|
||||||
|
|
||||||
|
/lastupdated:
|
||||||
|
get:
|
||||||
|
description: Gets a timestamp when the Amiibo data was last updated.
|
||||||
|
operationId: getLastUpdated
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Successful response returning the object that contains the date and time when the database was last updated.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/LastUpdated'
|
||||||
|
|
||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
Amiibo:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
amiiboSeries:
|
||||||
|
type: string
|
||||||
|
character:
|
||||||
|
type: string
|
||||||
|
gameSeries:
|
||||||
|
type: string
|
||||||
|
games3DS:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/AmiiboGame'
|
||||||
|
gamesSwitch:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/AmiiboGame'
|
||||||
|
gamesWiiU:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/AmiiboGame'
|
||||||
|
head:
|
||||||
|
type: string
|
||||||
|
image:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
release:
|
||||||
|
type: object
|
||||||
|
$ref: '#/components/schemas/AmiiboRelease'
|
||||||
|
tail:
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- amiiboSeries
|
||||||
|
- character
|
||||||
|
- gameSeries
|
||||||
|
- head
|
||||||
|
- image
|
||||||
|
- name
|
||||||
|
- release
|
||||||
|
- tail
|
||||||
|
- type
|
||||||
|
|
||||||
|
AmiiboGame:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
amiiboUsage:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/AmiiboUsage'
|
||||||
|
gameID:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
gameName:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- gameID
|
||||||
|
- gameName
|
||||||
|
|
||||||
|
AmiiboList:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/Amiibo'
|
||||||
|
|
||||||
|
AmiiboRelease:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
au:
|
||||||
|
type: string
|
||||||
|
format: date-time
|
||||||
|
eu:
|
||||||
|
type: string
|
||||||
|
format: date-time
|
||||||
|
jp:
|
||||||
|
type: string
|
||||||
|
format: date-time
|
||||||
|
na:
|
||||||
|
type: string
|
||||||
|
format: date-time
|
||||||
|
|
||||||
|
AmiiboUsage:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
Usage:
|
||||||
|
type: string
|
||||||
|
write:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- Usage
|
||||||
|
- write
|
||||||
|
|
||||||
|
AmiiboWrapper:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
amiibo:
|
||||||
|
oneOf:
|
||||||
|
- $ref: '#/components/schemas/Amiibo'
|
||||||
|
- $ref: '#/components/schemas/AmiiboList'
|
||||||
|
required:
|
||||||
|
- amiibo
|
||||||
|
|
||||||
|
LastUpdated:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
lastUpdated:
|
||||||
|
type: string
|
||||||
|
format: date-time
|
||||||
|
required:
|
||||||
|
- lastUpdated
|
||||||
|
|
||||||
|
Tuple:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
- name
|
||||||
|
|
||||||
|
TupleList:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/Tuple'
|
||||||
|
|
||||||
|
TupleWrapper:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
amiibo:
|
||||||
|
oneOf:
|
||||||
|
- $ref: '#/components/schemas/Tuple'
|
||||||
|
- $ref: '#/components/schemas/TupleList'
|
||||||
|
required:
|
||||||
|
- amiibo
|
Loading…
x
Reference in New Issue
Block a user