mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
added swagger
This commit is contained in:
324
api/swagger.yml
Normal file
324
api/swagger.yml
Normal file
@@ -0,0 +1,324 @@
|
||||
# This is the IronFunctions API spec
|
||||
# If you make changes here, remember to run `go generate` in routeserver/ and
|
||||
# tasker/ to make sure you use the changes.
|
||||
|
||||
swagger: '2.0'
|
||||
info:
|
||||
title: IronFunctions
|
||||
description:
|
||||
version: "0.0.1"
|
||||
# the domain of the service
|
||||
host: "localhost:8080"
|
||||
# array of all schemes that your API supports
|
||||
schemes:
|
||||
- https
|
||||
- http
|
||||
# will be prefixed to all paths
|
||||
basePath: /v1
|
||||
consumes:
|
||||
- application/json
|
||||
produces:
|
||||
- application/json
|
||||
paths:
|
||||
/apps:
|
||||
get:
|
||||
summary: "Get all app names."
|
||||
description: "Get a list of all the apps in the system."
|
||||
tags:
|
||||
- Apps
|
||||
responses:
|
||||
200:
|
||||
description: List of apps.
|
||||
schema:
|
||||
$ref: '#/definitions/AppsWrapper'
|
||||
default:
|
||||
description: Unexpected error
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
post:
|
||||
summary: "Post new app"
|
||||
description: "Insert a new app"
|
||||
tags:
|
||||
- Apps
|
||||
parameters:
|
||||
- name: body
|
||||
in: body
|
||||
description: App to post.
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/AppWrapper'
|
||||
responses:
|
||||
200:
|
||||
description: App details and stats.
|
||||
schema:
|
||||
$ref: '#/definitions/AppWrapper'
|
||||
400:
|
||||
description: Parameters are missing or invalid.
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
500:
|
||||
description: Could not accept app due to internal error.
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
default:
|
||||
description: Unexpected error
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
|
||||
|
||||
/apps/{app}:
|
||||
get:
|
||||
summary: "Get information for a app."
|
||||
description: "This gives more details about a app, such as statistics."
|
||||
tags:
|
||||
- Apps
|
||||
parameters:
|
||||
- name: name
|
||||
in: path
|
||||
description: name of the app.
|
||||
required: true
|
||||
type: string
|
||||
responses:
|
||||
200:
|
||||
description: App details and stats.
|
||||
schema:
|
||||
$ref: '#/definitions/AppWrapper'
|
||||
404:
|
||||
description: App does not exist.
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
default:
|
||||
description: Unexpected error
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
put:
|
||||
summary: "Create/update a app."
|
||||
description: "You can set app level settings here. "
|
||||
tags:
|
||||
- Apps
|
||||
parameters:
|
||||
- name: app
|
||||
in: path
|
||||
description: name of the app.
|
||||
required: true
|
||||
type: string
|
||||
- name: body
|
||||
in: body
|
||||
description: App to post.
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/AppWrapper'
|
||||
responses:
|
||||
200:
|
||||
description: App details and stats.
|
||||
schema:
|
||||
$ref: '#/definitions/AppWrapper'
|
||||
400:
|
||||
description: Parameters are missing or invalid.
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
500:
|
||||
description: Could not accept app due to internal error.
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
default:
|
||||
description: Unexpected error
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
|
||||
/apps/{app}/routes:
|
||||
post:
|
||||
summary: Enqueue Route
|
||||
description: |
|
||||
Enqueues route(s). If any of the routes is invalid, none of the routes are enqueued.
|
||||
tags:
|
||||
- Routes
|
||||
parameters:
|
||||
- name: app
|
||||
in: path
|
||||
description: name of the app.
|
||||
required: true
|
||||
type: string
|
||||
- name: body
|
||||
in: body
|
||||
description: Array of routes to post.
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/NewRoutesWrapper'
|
||||
responses:
|
||||
201:
|
||||
description: Route created
|
||||
schema:
|
||||
$ref: '#/definitions/RoutesWrapper'
|
||||
400:
|
||||
description: One or more of the routes were invalid due to parameters being missing or invalid.
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
500:
|
||||
description: Could not accept routes due to internal error.
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
default:
|
||||
description: Unexpected error
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
|
||||
get:
|
||||
summary: Get route list by app name.
|
||||
description: This will list routes for a particular app.
|
||||
tags:
|
||||
- Routes
|
||||
parameters:
|
||||
- name: app
|
||||
in: path
|
||||
description: Name of app for this set of routes.
|
||||
required: true
|
||||
type: string
|
||||
responses:
|
||||
200:
|
||||
description: Route information
|
||||
schema:
|
||||
$ref: '#/definitions/RoutesWrapper'
|
||||
default:
|
||||
description: Unexpected error
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
|
||||
/apps/{app}/routes/{route}:
|
||||
get:
|
||||
summary: Gets route by name
|
||||
description: Gets a route by name.
|
||||
tags:
|
||||
- Routes
|
||||
parameters:
|
||||
- name: app
|
||||
in: path
|
||||
description: Name of app for this set of routes.
|
||||
required: true
|
||||
type: string
|
||||
- name: route
|
||||
in: path
|
||||
description: Route name
|
||||
required: true
|
||||
type: string
|
||||
responses:
|
||||
200:
|
||||
description: Route information
|
||||
schema:
|
||||
$ref: '#/definitions/RouteWrapper'
|
||||
404:
|
||||
description: Route does not exist.
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
default:
|
||||
description: Unexpected error
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
|
||||
delete:
|
||||
summary: Deletes the route
|
||||
tags:
|
||||
- Routes
|
||||
description: Deletes the route.
|
||||
parameters:
|
||||
- name: app
|
||||
in: path
|
||||
description: Name of app for this set of routes.
|
||||
required: true
|
||||
type: string
|
||||
- name: route
|
||||
in: path
|
||||
description: Route name
|
||||
required: true
|
||||
type: string
|
||||
responses:
|
||||
200:
|
||||
description: Route successfully deleted. Deletion succeeds even on routes that do not exist.
|
||||
|
||||
definitions:
|
||||
Route:
|
||||
allOf:
|
||||
- type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: "Route name"
|
||||
readOnly: true
|
||||
app_name:
|
||||
type: string
|
||||
description: "App this route belongs to."
|
||||
readOnly: true
|
||||
path:
|
||||
type: string
|
||||
description: URL path that will be matched to this route
|
||||
image:
|
||||
description: Name of Docker image to use in this route. You should include the image tag, which should be a version number, to be more accurate. Can be overridden on a per route basis with route.image.
|
||||
type: string
|
||||
headers:
|
||||
type: string
|
||||
description: Map of http headers that will be sent with the response
|
||||
|
||||
App:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: "Name of this app. Must be different than the image name. Can ony contain alphanumeric, -, and _."
|
||||
readOnly: true
|
||||
|
||||
RoutesWrapper:
|
||||
type: object
|
||||
required:
|
||||
- routes
|
||||
properties:
|
||||
routes:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/definitions/Route'
|
||||
cursor:
|
||||
type: string
|
||||
description: Used to paginate results. If this is returned, pass it into the same query again to get more results.
|
||||
error:
|
||||
$ref: '#/definitions/ErrorBody'
|
||||
|
||||
RouteWrapper:
|
||||
type: object
|
||||
required:
|
||||
- route
|
||||
properties:
|
||||
route:
|
||||
$ref: '#/definitions/Route'
|
||||
|
||||
AppsWrapper:
|
||||
type: object
|
||||
required:
|
||||
- apps
|
||||
properties:
|
||||
apps:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/definitions/App'
|
||||
|
||||
AppWrapper:
|
||||
type: object
|
||||
required:
|
||||
- app
|
||||
properties:
|
||||
app:
|
||||
$ref: '#/definitions/App'
|
||||
|
||||
ErrorBody:
|
||||
type: object
|
||||
properties:
|
||||
message:
|
||||
type: string
|
||||
readOnly: true
|
||||
fields:
|
||||
type: string
|
||||
readOnly: true
|
||||
|
||||
Error:
|
||||
type: object
|
||||
properties:
|
||||
error:
|
||||
$ref: '#/definitions/ErrorBody'
|
||||
Reference in New Issue
Block a user