This PR contains the work done to migrate the *almost* completed**Amiibo API** implementation done in another project to its own stand-alone package. Reviewed-on: #2 Co-authored-by: Javier Cicchelli <javier@rock-n-code.com> Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
377 lines
9.8 KiB
YAML
377 lines
9.8 KiB
YAML
# ===----------------------------------------------------------------------===
|
|
#
|
|
# This source file is part of the AmiiboAPI open source project
|
|
#
|
|
# Copyright (c) 2024 Röck+Cöde VoF. and the AmiiboAPI project authors
|
|
# Licensed under the EUPL 1.2 or later.
|
|
#
|
|
# See LICENSE for license information
|
|
# See CONTRIBUTORS for the list of AmiiboAPI project authors
|
|
#
|
|
# ===----------------------------------------------------------------------===
|
|
|
|
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
|