Skip to content

Instantly share code, notes, and snippets.

@heapwalker
Created May 5, 2022 11:31
Show Gist options
  • Save heapwalker/d9c858771dc22af013910aa36f5b6b17 to your computer and use it in GitHub Desktop.
Save heapwalker/d9c858771dc22af013910aa36f5b6b17 to your computer and use it in GitHub Desktop.
potential API Spec
openapi: 3.0.0
info:
description: |
This is a sample Petstore server. You can find
out more about Swagger at
[http://swagger.io](http://swagger.io) or on
[irc.freenode.net, #swagger](http://swagger.io/irc/).
version: "1.0.0"
title: Sport in one
termsOfService: 'http://swagger.io/terms/'
contact:
email: apiteam@swagger.io
license:
name: Apache 2.0
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
servers:
# Added by API Auto Mocking Plugin
- description: SwaggerHub API Auto Mocking
url: https://virtserver.swaggerhub.com/katalogos/SportinoneV3/1.0.0
- url: 'https://petstore.swagger.io/v2'
tags:
- name: pet
description: Everything about your Pets
externalDocs:
description: Find out more
url: 'http://swagger.io'
- name: store
description: Access to Petstore orders
- name: user
description: Operations about user
externalDocs:
description: Find out more about our store
url: 'http://swagger.io'
paths:
/pet:
post:
deprecated: true
tags:
- pet
summary: Add a new pet to the store
operationId: addPet
responses:
'405':
description: Invalid input
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
requestBody:
$ref: '#/components/requestBodies/Pet'
put:
deprecated: true
tags:
- pet
summary: Update an existing pet
operationId: updatePet
responses:
'400':
description: Invalid ID supplied
'404':
description: Pet not found
'405':
description: Validation exception
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
requestBody:
$ref: '#/components/requestBodies/Pet'
/pet/findByStatus:
get:
deprecated: true
tags:
- pet
summary: Finds Pets by status
description: Multiple status values can be provided with comma separated strings
operationId: findPetsByStatus
parameters:
- name: status
in: query
description: Status values that need to be considered for filter
required: true
explode: true
schema:
type: array
items:
type: string
enum:
- available
- pending
- sold
default: available
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
'400':
description: Invalid status value
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
/pet/findByTags:
get:
deprecated: true
tags:
- pet
summary: Finds Pets by tags
description: >-
Muliple tags can be provided with comma separated strings. Use\ \ tag1,
tag2, tag3 for testing.
operationId: findPetsByTags
parameters:
- name: tags
in: query
description: Tags to filter by
required: true
explode: true
schema:
type: array
items:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
'400':
description: Invalid tag value
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
'/pet/{petId}':
get:
deprecated: true
tags:
- pet
summary: Find pet by ID
description: Returns a single pet
operationId: getPetById
parameters:
- name: petId
in: path
description: ID of pet to return
required: true
schema:
type: integer
format: int64
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
$ref: '#/components/schemas/Pet'
'400':
description: Invalid ID supplied
'404':
description: Pet not found
security:
- api_key: []
post:
deprecated: true
tags:
- pet
summary: Updates a pet in the store with form data
operationId: updatePetWithForm
parameters:
- name: petId
in: path
description: ID of pet that needs to be updated
required: true
schema:
type: integer
format: int64
responses:
'405':
description: Invalid input
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
name:
description: Updated name of the pet
type: string
status:
description: Updated status of the pet
type: string
delete:
deprecated: true
tags:
- pet
summary: Deletes a pet
operationId: deletePet
parameters:
- name: api_key
in: header
required: false
schema:
type: string
- name: petId
in: path
description: Pet id to delete
required: true
schema:
type: integer
format: int64
responses:
'400':
description: Invalid ID supplied
'404':
description: Pet not found
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
'/pet/{petId}/uploadImage':
post:
deprecated: true
tags:
- pet
summary: uploads an image
operationId: uploadFile
parameters:
- name: petId
in: path
description: ID of pet to update
required: true
schema:
type: integer
format: int64
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
requestBody:
content:
application/octet-stream:
schema:
type: string
format: binary
/store/inventory:
get:
deprecated: true
tags:
- store
summary: Returns pet inventories by status
description: Returns a map of status codes to quantities
operationId: getInventory
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
additionalProperties:
type: integer
format: int32
security:
- api_key: []
/store/order:
post:
deprecated: true
tags:
- store
summary: Place an order for a pet
operationId: placeOrder
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
application/xml:
schema:
$ref: '#/components/schemas/Order'
'400':
description: Invalid Order
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
description: order placed for purchasing the pet
required: true
'/store/order/{orderId}':
get:
deprecated: true
tags:
- store
summary: Find purchase order by ID
description: >-
For valid response try integer IDs with value >= 1 and <= 10.\ \ Other
values will generated exceptions
operationId: getOrderById
parameters:
- name: orderId
in: path
description: ID of pet that needs to be fetched
required: true
schema:
type: integer
format: int64
minimum: 1
maximum: 10
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
application/xml:
schema:
$ref: '#/components/schemas/Order'
'400':
description: Invalid ID supplied
'404':
description: Order not found
delete:
deprecated: true
tags:
- store
summary: Delete purchase order by ID
description: >-
For valid response try integer IDs with positive integer value.\ \
Negative or non-integer values will generate API errors
operationId: deleteOrder
parameters:
- name: orderId
in: path
description: ID of the order that needs to be deleted
required: true
schema:
type: integer
format: int64
minimum: 1
responses:
'400':
description: Invalid ID supplied
'404':
description: Order not found
/auth:
post:
tags:
- Auth
summary: Authenticate an user
description: For Authentication purpose
responses:
200:
description: Successfully authenticated
requestBody:
content:
application/json:
schema:
type: object
properties:
firebaseUserId:
type: string
firebaseToken:
type: string
/coach:
post:
tags:
- user
summary: Create a coach profile
description: Create a coach profile
responses:
200:
description: Successfully created a coach profile
requestBody:
content:
application/json:
schema:
type: object
properties:
chineseName:
type: string
englishName:
type: string
/player:
post:
tags:
- user
summary: Create a player profile
description: For newly registered user to create a player profile
responses:
200:
description: Successfully created a player profile
requestBody:
content:
application/json:
schema:
type: object
properties:
chineseName:
type: string
englishName:
type: string
nickname:
type: string
dateOfBirth:
type: string
format: ISO 8601 string
height:
type: number
weight:
type: number
jerseyNumber:
type: number
jerseySize:
type: string
enum:
- S
- M
- L
- XL
- XXL
position:
type: string
enum:
- '"C" for 中鋒 Center'
- '"PF" for 大前鋒 Power Forward'
- '"SF" for 小前鋒 Small Forward'
- '"SG" for 得分後衛 Shooting Guard'
- '"PG" for 控球後衛 Point Guard'
/team:
get:
tags:
- team
summary: Retrieve a list of team
description: Retrieve a list of teams, for player to make join-request
responses:
200:
description: Successfully created a team
post:
tags:
- team
summary: For coach to create a team
description: ''
requestBody:
content:
application/json:
schema:
type: object
properties:
chineseName:
type: string
englishName:
type: string
nature:
type: string
enum:
- '"P" for Primary School'
- '"SA" for Secondary School A Grade'
- '"SB" for Secondary School B Grade'
- '"SC" for Secondary School C Grade'
- '"T" for Tertiary School'
responses:
200:
description: Successfully created a team
/team/{teamId}:
put:
tags:
- team
summary: For coach or team admin to update a team
description: ''
parameters:
- name: teamId
in: path
required: true
description: ID of a team
schema:
type: string
responses:
200:
description: Successfully updated a team
requestBody:
content:
application/json:
schema:
type: object
properties:
chineseName:
type: string
englishName:
type: string
nature:
type: string
enum:
- '"P" for Primary School'
- '"SA" for Secondary School A Grade'
- '"SB" for Secondary School B Grade'
- '"SC" for Secondary School C Grade'
- '"T" for Tertiary School'
/team/{teamId}/activity:
get:
tags:
- team activity
summary: Retrieve list of activities of a team
description: 'TODO It should support pagination'
parameters:
- name: teamId
in: path
required: true
description: ID of a team
schema:
type: string
responses:
200:
description: Team exists
404:
description: Team not found
/team/{teamId}/match:
get:
tags:
- team match
summary: Retrieve list of matches (either upcoming or past) of a team
description: 'TODO It should support pagination'
parameters:
- name: teamId
in: path
required: true
description: ID of a team
schema:
type: string
- name: type
in: query
required: false
schema:
enum:
- upcoming
- past
responses:
200:
description: Team exists
404:
description: Team not found
/team/{teamId}/player:
get:
tags:
- team member
summary: Retrieve list of players of a team
description: ''
parameters:
- name: teamId
in: path
required: true
description: ID of a team
schema:
type: string
responses:
200:
description: Team exists
404:
description: Team not found
/team/{teamId}/join:
post:
tags:
- team member
summary: For player to join a team
description: ''
parameters:
- name: teamId
in: path
required: true
description: ID of a team
schema:
type: string
responses:
200:
description: Successfully created a team
/team/{teamId}/assign/{userId}:
post:
tags:
- team member
summary: For coach to assign a existing team member as admin, or de-assign from admin
description: ''
parameters:
- name: teamId
in: path
required: true
description: ID of a team
schema:
type: string
- name: userId
in: path
required: true
description: ID of a user
schema:
type: string
responses:
200:
description: Successfully assigned / de-assigned
/team/{teamId}/member-request:
get:
tags:
- team member
summary: For coach or team admin to retrieve list of member-request
description: ''
parameters:
- name: teamId
in: path
required: true
description: ID of a team
schema:
type: string
responses:
200:
description: ''
/team/{teamId}/member-request/{requestId}:
post:
tags:
- team member
summary: For player to join a team
description: For player to join a team
parameters:
- name: teamId
in: path
required: true
description: ID of a team
schema:
type: string
- name: requestId
in: path
required: true
description: ID of a request
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
verdict:
type: string
enum:
- 'accept'
- 'reject'
responses:
200:
description: Successfully accepted or rejected a team
/player/{userId}:
get:
tags:
- player
summary: Retrieve detail of a player
description: ''
parameters:
- name: userId
in: path
required: true
description: User ID of the player
schema:
type: string
responses:
200:
description: Player exists
404:
description: Player not found
externalDocs:
description: Find out more about Swagger
url: 'http://swagger.io'
components:
responses:
BaseResponse:
description: Base response
content:
application/json:
schema:
type: object
properties:
code:
type: string
message:
type: string
required:
- code
- message
AuthResponse:
description: Result of authentication
content:
application/json:
schema:
allOf:
- $ref: '#/components/responses/BaseResponse'
schemas:
Activity:
type: object
properties:
id:
type: string
CoachProfile:
type: object
properties:
id:
type: string
PlayerProfile:
type: object
properties:
id:
type: string
height:
type: number
weight:
type: number
position:
type: string
enum:
- '"C" for 中鋒 Center'
- '"PF" for 大前鋒 Power Forward'
- '"SF" for 小前鋒 Small Forward'
- '"SG" for 得分後衛 Shooting Guard'
- '"PG" for 控球後衛 Point Guard'
jerseyNumber:
type: number
jerseySize:
type: string
enum:
- S
- M
- L
- XL
- XXL
Team:
type: object
properties:
id:
type: string
chineseName:
type: string
englishName:
type: string
logoUrl:
type: string
nature:
type: string
enum:
- '"P" for Primary School'
- '"SA" for Secondary School A Grade'
- '"SB" for Secondary School B Grade'
- '"SC" for Secondary School C Grade'
- '"T" for Tertiary School'
member:
type: array
items:
$ref: '#/components/schemas/User'
User:
type: object
properties:
id:
type: integer
format: int64
username:
type: string
chineseName:
type: string
englishName:
type: string
nickname:
type: string
dateOfBirth:
type: string
description: Expected an ISO-8601 string or an empty value
role:
type: string
enum:
- coach
- player
description: Initially empty, when user has not chosen a role
userStatus:
type: integer
format: int32
description: User Status
Order:
description: This schema came from template. Just ignore it.
deprecated: true
type: object
properties:
id:
type: integer
format: int64
petId:
type: integer
format: int64
quantity:
type: integer
format: int32
shipDate:
type: string
format: date-time
status:
type: string
description: Order Status
enum:
- placed
- approved
- delivered
complete:
type: boolean
default: false
xml:
name: Order
Category:
description: This schema came from template. Just ignore it.
deprecated: true
type: object
properties:
id:
type: integer
format: int64
name:
type: string
xml:
name: Category
Tag:
description: This schema came from template. Just ignore it.
deprecated: true
type: object
properties:
id:
type: integer
format: int64
name:
type: string
xml:
name: Tag
Pet:
description: This schema came from template. Just ignore it.
deprecated: true
type: object
required:
- name
- photoUrls
properties:
id:
type: integer
format: int64
category:
$ref: '#/components/schemas/Category'
name:
type: string
example: doggie
photoUrls:
type: array
xml:
name: photoUrl
wrapped: true
items:
type: string
tags:
type: array
xml:
name: tag
wrapped: true
items:
$ref: '#/components/schemas/Tag'
status:
type: string
description: pet status in the store
enum:
- available
- pending
- sold
xml:
name: Pet
ApiResponse:
type: object
properties:
code:
type: integer
format: int32
type:
type: string
message:
type: string
requestBodies:
Pet:
content:
application/json:
schema:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
$ref: '#/components/schemas/Pet'
description: Pet object that needs to be added to the store
required: true
UserArray:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
description: List of user object
required: true
securitySchemes:
petstore_auth:
type: oauth2
flows:
implicit:
authorizationUrl: 'http://petstore.swagger.io/oauth/dialog'
scopes:
'write:pets': modify pets in your account
'read:pets': read your pets
api_key:
type: apiKey
name: api_key
in: header
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment