Model API
This commit is contained in:
parent
6df3ea9fa1
commit
fd3f699a29
@ -103,7 +103,7 @@ const config = {
|
|||||||
{
|
{
|
||||||
specs: [
|
specs: [
|
||||||
{
|
{
|
||||||
spec: "openapi/jan.json", // can be local file, url, or parsed json object
|
spec: "openapi/jan.yaml", // can be local file, url, or parsed json object
|
||||||
route: "/api-reference", // path where to render docs
|
route: "/api-reference", // path where to render docs
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
@ -1,673 +0,0 @@
|
|||||||
{
|
|
||||||
"swagger": "2.0",
|
|
||||||
"info": {
|
|
||||||
"description": "This is a sample server 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/). For this sample, you can use the api key `special-key` to test the authorization filters.",
|
|
||||||
"version": "1.0.6",
|
|
||||||
"title": "Swagger Petstore",
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"host": "petstore.swagger.io",
|
|
||||||
"basePath": "/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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"schemes": ["https", "http"],
|
|
||||||
"paths": {
|
|
||||||
"/pet/{petId}/uploadImage": {
|
|
||||||
"post": {
|
|
||||||
"tags": ["pet"],
|
|
||||||
"summary": "uploads an image",
|
|
||||||
"description": "",
|
|
||||||
"operationId": "uploadFile",
|
|
||||||
"consumes": ["multipart/form-data"],
|
|
||||||
"produces": ["application/json"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"name": "petId",
|
|
||||||
"in": "path",
|
|
||||||
"description": "ID of pet to update",
|
|
||||||
"required": true,
|
|
||||||
"type": "integer",
|
|
||||||
"format": "int64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "additionalMetadata",
|
|
||||||
"in": "formData",
|
|
||||||
"description": "Additional data to pass to server",
|
|
||||||
"required": false,
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "file",
|
|
||||||
"in": "formData",
|
|
||||||
"description": "file to upload",
|
|
||||||
"required": false,
|
|
||||||
"type": "file"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "successful operation",
|
|
||||||
"schema": { "$ref": "#/definitions/ApiResponse" }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"security": [{ "petstore_auth": ["write:pets", "read:pets"] }]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/pet": {
|
|
||||||
"post": {
|
|
||||||
"tags": ["pet"],
|
|
||||||
"summary": "Add a new pet to the store",
|
|
||||||
"description": "",
|
|
||||||
"operationId": "addPet",
|
|
||||||
"consumes": ["application/json", "application/xml"],
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"in": "body",
|
|
||||||
"name": "body",
|
|
||||||
"description": "Pet object that needs to be added to the store",
|
|
||||||
"required": true,
|
|
||||||
"schema": { "$ref": "#/definitions/Pet" }
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": { "405": { "description": "Invalid input" } },
|
|
||||||
"security": [{ "petstore_auth": ["write:pets", "read:pets"] }]
|
|
||||||
},
|
|
||||||
"put": {
|
|
||||||
"tags": ["pet"],
|
|
||||||
"summary": "Update an existing pet",
|
|
||||||
"description": "",
|
|
||||||
"operationId": "updatePet",
|
|
||||||
"consumes": ["application/json", "application/xml"],
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"in": "body",
|
|
||||||
"name": "body",
|
|
||||||
"description": "Pet object that needs to be added to the store",
|
|
||||||
"required": true,
|
|
||||||
"schema": { "$ref": "#/definitions/Pet" }
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"400": { "description": "Invalid ID supplied" },
|
|
||||||
"404": { "description": "Pet not found" },
|
|
||||||
"405": { "description": "Validation exception" }
|
|
||||||
},
|
|
||||||
"security": [{ "petstore_auth": ["write:pets", "read:pets"] }]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/pet/findByStatus": {
|
|
||||||
"get": {
|
|
||||||
"tags": ["pet"],
|
|
||||||
"summary": "Finds Pets by status",
|
|
||||||
"description": "Multiple status values can be provided with comma separated strings",
|
|
||||||
"operationId": "findPetsByStatus",
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"name": "status",
|
|
||||||
"in": "query",
|
|
||||||
"description": "Status values that need to be considered for filter",
|
|
||||||
"required": true,
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["available", "pending", "sold"],
|
|
||||||
"default": "available"
|
|
||||||
},
|
|
||||||
"collectionFormat": "multi"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "successful operation",
|
|
||||||
"schema": {
|
|
||||||
"type": "array",
|
|
||||||
"items": { "$ref": "#/definitions/Pet" }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"400": { "description": "Invalid status value" }
|
|
||||||
},
|
|
||||||
"security": [{ "petstore_auth": ["write:pets", "read:pets"] }]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/pet/findByTags": {
|
|
||||||
"get": {
|
|
||||||
"tags": ["pet"],
|
|
||||||
"summary": "Finds Pets by tags",
|
|
||||||
"description": "Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.",
|
|
||||||
"operationId": "findPetsByTags",
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"name": "tags",
|
|
||||||
"in": "query",
|
|
||||||
"description": "Tags to filter by",
|
|
||||||
"required": true,
|
|
||||||
"type": "array",
|
|
||||||
"items": { "type": "string" },
|
|
||||||
"collectionFormat": "multi"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "successful operation",
|
|
||||||
"schema": {
|
|
||||||
"type": "array",
|
|
||||||
"items": { "$ref": "#/definitions/Pet" }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"400": { "description": "Invalid tag value" }
|
|
||||||
},
|
|
||||||
"security": [{ "petstore_auth": ["write:pets", "read:pets"] }],
|
|
||||||
"deprecated": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/pet/{petId}": {
|
|
||||||
"get": {
|
|
||||||
"tags": ["pet"],
|
|
||||||
"summary": "Find pet by ID",
|
|
||||||
"description": "Returns a single pet",
|
|
||||||
"operationId": "getPetById",
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"name": "petId",
|
|
||||||
"in": "path",
|
|
||||||
"description": "ID of pet to return",
|
|
||||||
"required": true,
|
|
||||||
"type": "integer",
|
|
||||||
"format": "int64"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "successful operation",
|
|
||||||
"schema": { "$ref": "#/definitions/Pet" }
|
|
||||||
},
|
|
||||||
"400": { "description": "Invalid ID supplied" },
|
|
||||||
"404": { "description": "Pet not found" }
|
|
||||||
},
|
|
||||||
"security": [{ "api_key": [] }]
|
|
||||||
},
|
|
||||||
"post": {
|
|
||||||
"tags": ["pet"],
|
|
||||||
"summary": "Updates a pet in the store with form data",
|
|
||||||
"description": "",
|
|
||||||
"operationId": "updatePetWithForm",
|
|
||||||
"consumes": ["application/x-www-form-urlencoded"],
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"name": "petId",
|
|
||||||
"in": "path",
|
|
||||||
"description": "ID of pet that needs to be updated",
|
|
||||||
"required": true,
|
|
||||||
"type": "integer",
|
|
||||||
"format": "int64"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "name",
|
|
||||||
"in": "formData",
|
|
||||||
"description": "Updated name of the pet",
|
|
||||||
"required": false,
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "status",
|
|
||||||
"in": "formData",
|
|
||||||
"description": "Updated status of the pet",
|
|
||||||
"required": false,
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": { "405": { "description": "Invalid input" } },
|
|
||||||
"security": [{ "petstore_auth": ["write:pets", "read:pets"] }]
|
|
||||||
},
|
|
||||||
"delete": {
|
|
||||||
"tags": ["pet"],
|
|
||||||
"summary": "Deletes a pet",
|
|
||||||
"description": "",
|
|
||||||
"operationId": "deletePet",
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"name": "api_key",
|
|
||||||
"in": "header",
|
|
||||||
"required": false,
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "petId",
|
|
||||||
"in": "path",
|
|
||||||
"description": "Pet id to delete",
|
|
||||||
"required": true,
|
|
||||||
"type": "integer",
|
|
||||||
"format": "int64"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"400": { "description": "Invalid ID supplied" },
|
|
||||||
"404": { "description": "Pet not found" }
|
|
||||||
},
|
|
||||||
"security": [{ "petstore_auth": ["write:pets", "read:pets"] }]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/store/order": {
|
|
||||||
"post": {
|
|
||||||
"tags": ["store"],
|
|
||||||
"summary": "Place an order for a pet",
|
|
||||||
"description": "",
|
|
||||||
"operationId": "placeOrder",
|
|
||||||
"consumes": ["application/json"],
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"in": "body",
|
|
||||||
"name": "body",
|
|
||||||
"description": "order placed for purchasing the pet",
|
|
||||||
"required": true,
|
|
||||||
"schema": { "$ref": "#/definitions/Order" }
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "successful operation",
|
|
||||||
"schema": { "$ref": "#/definitions/Order" }
|
|
||||||
},
|
|
||||||
"400": { "description": "Invalid Order" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/store/order/{orderId}": {
|
|
||||||
"get": {
|
|
||||||
"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",
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"name": "orderId",
|
|
||||||
"in": "path",
|
|
||||||
"description": "ID of pet that needs to be fetched",
|
|
||||||
"required": true,
|
|
||||||
"type": "integer",
|
|
||||||
"maximum": 10,
|
|
||||||
"minimum": 1,
|
|
||||||
"format": "int64"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "successful operation",
|
|
||||||
"schema": { "$ref": "#/definitions/Order" }
|
|
||||||
},
|
|
||||||
"400": { "description": "Invalid ID supplied" },
|
|
||||||
"404": { "description": "Order not found" }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"delete": {
|
|
||||||
"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",
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"name": "orderId",
|
|
||||||
"in": "path",
|
|
||||||
"description": "ID of the order that needs to be deleted",
|
|
||||||
"required": true,
|
|
||||||
"type": "integer",
|
|
||||||
"minimum": 1,
|
|
||||||
"format": "int64"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"400": { "description": "Invalid ID supplied" },
|
|
||||||
"404": { "description": "Order not found" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/store/inventory": {
|
|
||||||
"get": {
|
|
||||||
"tags": ["store"],
|
|
||||||
"summary": "Returns pet inventories by status",
|
|
||||||
"description": "Returns a map of status codes to quantities",
|
|
||||||
"operationId": "getInventory",
|
|
||||||
"produces": ["application/json"],
|
|
||||||
"parameters": [],
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "successful operation",
|
|
||||||
"schema": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": { "type": "integer", "format": "int32" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"security": [{ "api_key": [] }]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/user/createWithArray": {
|
|
||||||
"post": {
|
|
||||||
"tags": ["user"],
|
|
||||||
"summary": "Creates list of users with given input array",
|
|
||||||
"description": "",
|
|
||||||
"operationId": "createUsersWithArrayInput",
|
|
||||||
"consumes": ["application/json"],
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"in": "body",
|
|
||||||
"name": "body",
|
|
||||||
"description": "List of user object",
|
|
||||||
"required": true,
|
|
||||||
"schema": {
|
|
||||||
"type": "array",
|
|
||||||
"items": { "$ref": "#/definitions/User" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": { "default": { "description": "successful operation" } }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/user/createWithList": {
|
|
||||||
"post": {
|
|
||||||
"tags": ["user"],
|
|
||||||
"summary": "Creates list of users with given input array",
|
|
||||||
"description": "",
|
|
||||||
"operationId": "createUsersWithListInput",
|
|
||||||
"consumes": ["application/json"],
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"in": "body",
|
|
||||||
"name": "body",
|
|
||||||
"description": "List of user object",
|
|
||||||
"required": true,
|
|
||||||
"schema": {
|
|
||||||
"type": "array",
|
|
||||||
"items": { "$ref": "#/definitions/User" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": { "default": { "description": "successful operation" } }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/user/{username}": {
|
|
||||||
"get": {
|
|
||||||
"tags": ["user"],
|
|
||||||
"summary": "Get user by user name",
|
|
||||||
"description": "",
|
|
||||||
"operationId": "getUserByName",
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"name": "username",
|
|
||||||
"in": "path",
|
|
||||||
"description": "The name that needs to be fetched. Use user1 for testing. ",
|
|
||||||
"required": true,
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "successful operation",
|
|
||||||
"schema": { "$ref": "#/definitions/User" }
|
|
||||||
},
|
|
||||||
"400": { "description": "Invalid username supplied" },
|
|
||||||
"404": { "description": "User not found" }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"put": {
|
|
||||||
"tags": ["user"],
|
|
||||||
"summary": "Updated user",
|
|
||||||
"description": "This can only be done by the logged in user.",
|
|
||||||
"operationId": "updateUser",
|
|
||||||
"consumes": ["application/json"],
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"name": "username",
|
|
||||||
"in": "path",
|
|
||||||
"description": "name that need to be updated",
|
|
||||||
"required": true,
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"in": "body",
|
|
||||||
"name": "body",
|
|
||||||
"description": "Updated user object",
|
|
||||||
"required": true,
|
|
||||||
"schema": { "$ref": "#/definitions/User" }
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"400": { "description": "Invalid user supplied" },
|
|
||||||
"404": { "description": "User not found" }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"delete": {
|
|
||||||
"tags": ["user"],
|
|
||||||
"summary": "Delete user",
|
|
||||||
"description": "This can only be done by the logged in user.",
|
|
||||||
"operationId": "deleteUser",
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"name": "username",
|
|
||||||
"in": "path",
|
|
||||||
"description": "The name that needs to be deleted",
|
|
||||||
"required": true,
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"400": { "description": "Invalid username supplied" },
|
|
||||||
"404": { "description": "User not found" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/user/login": {
|
|
||||||
"get": {
|
|
||||||
"tags": ["user"],
|
|
||||||
"summary": "Logs user into the system",
|
|
||||||
"description": "",
|
|
||||||
"operationId": "loginUser",
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"name": "username",
|
|
||||||
"in": "query",
|
|
||||||
"description": "The user name for login",
|
|
||||||
"required": true,
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "password",
|
|
||||||
"in": "query",
|
|
||||||
"description": "The password for login in clear text",
|
|
||||||
"required": true,
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "successful operation",
|
|
||||||
"headers": {
|
|
||||||
"X-Expires-After": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "date-time",
|
|
||||||
"description": "date in UTC when token expires"
|
|
||||||
},
|
|
||||||
"X-Rate-Limit": {
|
|
||||||
"type": "integer",
|
|
||||||
"format": "int32",
|
|
||||||
"description": "calls per hour allowed by the user"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"schema": { "type": "string" }
|
|
||||||
},
|
|
||||||
"400": { "description": "Invalid username/password supplied" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/user/logout": {
|
|
||||||
"get": {
|
|
||||||
"tags": ["user"],
|
|
||||||
"summary": "Logs out current logged in user session",
|
|
||||||
"description": "",
|
|
||||||
"operationId": "logoutUser",
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [],
|
|
||||||
"responses": { "default": { "description": "successful operation" } }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/user": {
|
|
||||||
"post": {
|
|
||||||
"tags": ["user"],
|
|
||||||
"summary": "Create user",
|
|
||||||
"description": "This can only be done by the logged in user.",
|
|
||||||
"operationId": "createUser",
|
|
||||||
"consumes": ["application/json"],
|
|
||||||
"produces": ["application/json", "application/xml"],
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"in": "body",
|
|
||||||
"name": "body",
|
|
||||||
"description": "Created user object",
|
|
||||||
"required": true,
|
|
||||||
"schema": { "$ref": "#/definitions/User" }
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": { "default": { "description": "successful operation" } }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"securityDefinitions": {
|
|
||||||
"api_key": { "type": "apiKey", "name": "api_key", "in": "header" },
|
|
||||||
"petstore_auth": {
|
|
||||||
"type": "oauth2",
|
|
||||||
"authorizationUrl": "https://petstore.swagger.io/oauth/authorize",
|
|
||||||
"flow": "implicit",
|
|
||||||
"scopes": {
|
|
||||||
"read:pets": "read your pets",
|
|
||||||
"write:pets": "modify pets in your account"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"definitions": {
|
|
||||||
"ApiResponse": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": { "type": "integer", "format": "int32" },
|
|
||||||
"type": { "type": "string" },
|
|
||||||
"message": { "type": "string" }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Category": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"id": { "type": "integer", "format": "int64" },
|
|
||||||
"name": { "type": "string" }
|
|
||||||
},
|
|
||||||
"xml": { "name": "Category" }
|
|
||||||
},
|
|
||||||
"Pet": {
|
|
||||||
"type": "object",
|
|
||||||
"required": ["name", "photoUrls"],
|
|
||||||
"properties": {
|
|
||||||
"id": { "type": "integer", "format": "int64" },
|
|
||||||
"category": { "$ref": "#/definitions/Category" },
|
|
||||||
"name": { "type": "string", "example": "doggie" },
|
|
||||||
"photoUrls": {
|
|
||||||
"type": "array",
|
|
||||||
"xml": { "wrapped": true },
|
|
||||||
"items": { "type": "string", "xml": { "name": "photoUrl" } }
|
|
||||||
},
|
|
||||||
"tags": {
|
|
||||||
"type": "array",
|
|
||||||
"xml": { "wrapped": true },
|
|
||||||
"items": { "xml": { "name": "tag" }, "$ref": "#/definitions/Tag" }
|
|
||||||
},
|
|
||||||
"status": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "pet status in the store",
|
|
||||||
"enum": ["available", "pending", "sold"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"xml": { "name": "Pet" }
|
|
||||||
},
|
|
||||||
"Tag": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"id": { "type": "integer", "format": "int64" },
|
|
||||||
"name": { "type": "string" }
|
|
||||||
},
|
|
||||||
"xml": { "name": "Tag" }
|
|
||||||
},
|
|
||||||
"Order": {
|
|
||||||
"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" }
|
|
||||||
},
|
|
||||||
"xml": { "name": "Order" }
|
|
||||||
},
|
|
||||||
"User": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"id": { "type": "integer", "format": "int64" },
|
|
||||||
"username": { "type": "string" },
|
|
||||||
"firstName": { "type": "string" },
|
|
||||||
"lastName": { "type": "string" },
|
|
||||||
"email": { "type": "string" },
|
|
||||||
"password": { "type": "string" },
|
|
||||||
"phone": { "type": "string" },
|
|
||||||
"userStatus": {
|
|
||||||
"type": "integer",
|
|
||||||
"format": "int32",
|
|
||||||
"description": "User Status"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"xml": { "name": "User" }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"externalDocs": {
|
|
||||||
"description": "Find out more about Swagger",
|
|
||||||
"url": "http://swagger.io"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
190
docs/openapi/jan.yaml
Normal file
190
docs/openapi/jan.yaml
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
openapi: 3.0.0
|
||||||
|
info:
|
||||||
|
title: Jan API Reference
|
||||||
|
description: Please see https://jan.ai for documentation.
|
||||||
|
version: "0.1.8"
|
||||||
|
contact:
|
||||||
|
name: Jan Discord
|
||||||
|
url: https://discord.gg/7EcEz7MrvA
|
||||||
|
license:
|
||||||
|
name: AGPLv3
|
||||||
|
url: https://github.com/janhq/nitro/blob/main/LICENSE
|
||||||
|
servers:
|
||||||
|
- url: https://localhost:1337/v1/
|
||||||
|
tags:
|
||||||
|
- name: Models
|
||||||
|
description: List and describe the various models available in the API.
|
||||||
|
- name: Chat Completion
|
||||||
|
description: Given a list of messages comprising a conversation, the model will return a response.
|
||||||
|
- name: Messages
|
||||||
|
description: Operations for individual messages, including creation, retrieval, and modification
|
||||||
|
- name: Threads
|
||||||
|
description: Manages series of related messages or conversation threads
|
||||||
|
- name: Assistants
|
||||||
|
description: Configures and utilizes different AI assistants for varied tasks
|
||||||
|
x-tagGroups:
|
||||||
|
- name: Endpoints
|
||||||
|
tags:
|
||||||
|
- Models
|
||||||
|
- Chat Completion
|
||||||
|
- name: Chat
|
||||||
|
tags:
|
||||||
|
- Assistants
|
||||||
|
- Messages
|
||||||
|
- Threads
|
||||||
|
paths:
|
||||||
|
/models:
|
||||||
|
get:
|
||||||
|
operationId: listModels
|
||||||
|
tags:
|
||||||
|
- Models
|
||||||
|
summary: List Models
|
||||||
|
description: Lists the currently available models, and provides basic information about each one such as the owner and availability.
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "specs/models/models.yaml#/components/schemas/ListModelsResponse"
|
||||||
|
x-codeSamples:
|
||||||
|
- lang: "curl"
|
||||||
|
source: |
|
||||||
|
curl https://localhost:1337/v1/models
|
||||||
|
post:
|
||||||
|
operationId: downloadModel
|
||||||
|
tags:
|
||||||
|
- Models
|
||||||
|
summary: Download Model
|
||||||
|
description: Download a model.
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "specs/models/models.yaml#/components/schemas/DownloadModelResponse"
|
||||||
|
x-codeSamples:
|
||||||
|
- lang: "curl"
|
||||||
|
source: |
|
||||||
|
curl -X POST https://localhost:1337/v1/models
|
||||||
|
/models/{model_id}:
|
||||||
|
get:
|
||||||
|
operationId: getModel
|
||||||
|
tags:
|
||||||
|
- Models
|
||||||
|
summary: Get Model
|
||||||
|
description: Get a model instance, providing basic information about the model such as the owner and permissioning.
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: source_url
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
# ideally this will be an actual ID, so this will always work from browser
|
||||||
|
example: https://huggingface.com/thebloke/example.gguf
|
||||||
|
description: The ID of the model to use for this request
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "specs/models/models.yaml#/components/schemas/GetModelResponse"
|
||||||
|
x-codeSamples:
|
||||||
|
- lang: "curl"
|
||||||
|
source: |
|
||||||
|
curl https://localhost:1337/v1/models/zephyr-7b
|
||||||
|
delete:
|
||||||
|
operationId: deleteModel
|
||||||
|
tags:
|
||||||
|
- Models
|
||||||
|
summary: Delete Model
|
||||||
|
description: Delete a model.
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: model
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: zephyr-7b
|
||||||
|
description: The model to delete
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "specs/models/models.yaml#/components/schemas/DeleteModelResponse"
|
||||||
|
x-codeSamples:
|
||||||
|
- lang: "curl"
|
||||||
|
source: |
|
||||||
|
curl -X DELETE https://localhost:1337/v1/models/zephyr-7b
|
||||||
|
/models/{model_id}/start:
|
||||||
|
put:
|
||||||
|
operationId: startModel
|
||||||
|
tags:
|
||||||
|
- Models
|
||||||
|
summary: Start Model
|
||||||
|
description: Starts an imported model. Loads the model into V/RAM.
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: model
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
# ideally this will be an actual ID, so this will always work from browser
|
||||||
|
example: zephyr-7b
|
||||||
|
description: The ID of the model to use for this request
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "specs/models/models.yaml#/components/schemas/StartModelResponse"
|
||||||
|
x-codeSamples:
|
||||||
|
- lang: "curl"
|
||||||
|
source: |
|
||||||
|
curl -X PUT https://localhost:1337/v1/models/zephyr-7b/start
|
||||||
|
/models/{model_id}/stop:
|
||||||
|
put:
|
||||||
|
operationId: stopModel
|
||||||
|
tags:
|
||||||
|
- Models
|
||||||
|
summary: Stop Model
|
||||||
|
description: Stop an imported model.
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: model
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
# ideally this will be an actual ID, so this will always work from browser
|
||||||
|
example: zephyr-7b
|
||||||
|
description: The ID of the model to use for this request
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "specs/models/models.yaml#/components/schemas/StopModelResponse"
|
||||||
|
x-codeSamples:
|
||||||
|
- lang: "curl"
|
||||||
|
source: |
|
||||||
|
curl -X PUT https://localhost:1337/v1/models/zephyr-7b/stop
|
||||||
|
|
||||||
|
x-webhooks:
|
||||||
|
ModelObject:
|
||||||
|
post:
|
||||||
|
summary: The model object
|
||||||
|
description: Information about a model in the systems
|
||||||
|
operationId: ModelObject
|
||||||
|
tags:
|
||||||
|
- Models
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: 'specs/models/models.yaml#/components/schemas/ModelObject'
|
||||||
329
docs/openapi/specs/models/models.yaml
Normal file
329
docs/openapi/specs/models/models.yaml
Normal file
@ -0,0 +1,329 @@
|
|||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
ListModelsResponse:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
object:
|
||||||
|
type: string
|
||||||
|
enum: [list]
|
||||||
|
data:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: "#/components/schemas/Model"
|
||||||
|
required:
|
||||||
|
- object
|
||||||
|
- data
|
||||||
|
|
||||||
|
Model:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
default: "model"
|
||||||
|
description: "The type of the object."
|
||||||
|
version:
|
||||||
|
type: string
|
||||||
|
default: "1"
|
||||||
|
description: "The version number of the model."
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
description: "Unique identifier used in chat-completions model_name, matches folder name."
|
||||||
|
example: "zephyr-7b"
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: "Name of the model."
|
||||||
|
example: "Zephyr 7B"
|
||||||
|
owned_by:
|
||||||
|
type: string
|
||||||
|
description: "Compatibility field for OpenAI."
|
||||||
|
default: ""
|
||||||
|
created:
|
||||||
|
type: integer
|
||||||
|
format: int64
|
||||||
|
description: "Unix timestamp representing the creation time."
|
||||||
|
description:
|
||||||
|
type: string
|
||||||
|
description: "Description of the model."
|
||||||
|
state:
|
||||||
|
type: string
|
||||||
|
enum: [null, "downloading", "available"]
|
||||||
|
description: "Current state of the model."
|
||||||
|
format:
|
||||||
|
type: string
|
||||||
|
description: "State format of the model, distinct from the engine."
|
||||||
|
example: "ggufv3"
|
||||||
|
source_url:
|
||||||
|
type: string
|
||||||
|
format: uri
|
||||||
|
description: "URL to the source of the model."
|
||||||
|
example: "https://huggingface.co/TheBloke/zephyr-7B-beta-GGUF/blob/main/zephyr-7b-beta.Q4_K_M.gguf"
|
||||||
|
settings:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
ctx_len:
|
||||||
|
type: string
|
||||||
|
description: "Context length."
|
||||||
|
example: "2048"
|
||||||
|
ngl:
|
||||||
|
type: string
|
||||||
|
description: "Number of layers."
|
||||||
|
example: "100"
|
||||||
|
embedding:
|
||||||
|
type: string
|
||||||
|
description: "Indicates if embedding is enabled."
|
||||||
|
example: "true"
|
||||||
|
n_parallel:
|
||||||
|
type: string
|
||||||
|
description: "Number of parallel processes."
|
||||||
|
example: "4"
|
||||||
|
additionalProperties: false
|
||||||
|
parameters:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
temperature:
|
||||||
|
type: string
|
||||||
|
description: "Temperature setting for the model."
|
||||||
|
example: "0.7"
|
||||||
|
token_limit:
|
||||||
|
type: string
|
||||||
|
description: "Token limit for the model."
|
||||||
|
example: "2048"
|
||||||
|
top_k:
|
||||||
|
type: string
|
||||||
|
description: "Top-k setting for the model."
|
||||||
|
example: "0"
|
||||||
|
top_p:
|
||||||
|
type: string
|
||||||
|
description: "Top-p setting for the model."
|
||||||
|
example: "1"
|
||||||
|
stream:
|
||||||
|
type: string
|
||||||
|
description: "Indicates if streaming is enabled."
|
||||||
|
example: "true"
|
||||||
|
additionalProperties: false
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
description: "Additional metadata."
|
||||||
|
assets:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
description: "List of assets related to the model."
|
||||||
|
required:
|
||||||
|
- type
|
||||||
|
- version
|
||||||
|
- id
|
||||||
|
- name
|
||||||
|
- created
|
||||||
|
- state
|
||||||
|
- format
|
||||||
|
- source_url
|
||||||
|
- settings
|
||||||
|
- parameters
|
||||||
|
|
||||||
|
ModelObject:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
description: "The identifier of the model."
|
||||||
|
example: "zephyr-7b"
|
||||||
|
object:
|
||||||
|
type: string
|
||||||
|
description: "The type of the object, indicating it's a model."
|
||||||
|
default: "model"
|
||||||
|
created:
|
||||||
|
type: integer
|
||||||
|
format: int64
|
||||||
|
description: "Unix timestamp representing the creation time of the model."
|
||||||
|
example: "1253935178"
|
||||||
|
owned_by:
|
||||||
|
type: string
|
||||||
|
description: "The entity that owns the model."
|
||||||
|
example: "_"
|
||||||
|
required:
|
||||||
|
- id
|
||||||
|
- object
|
||||||
|
- created
|
||||||
|
- owned_by
|
||||||
|
|
||||||
|
GetModelResponse:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
description: "The identifier of the model."
|
||||||
|
example: "zephyr-7b"
|
||||||
|
object:
|
||||||
|
type: string
|
||||||
|
description: "Type of the object, indicating it's a model."
|
||||||
|
default: "model"
|
||||||
|
created:
|
||||||
|
type: integer
|
||||||
|
format: int64
|
||||||
|
description: "Unix timestamp representing the creation time of the model."
|
||||||
|
owned_by:
|
||||||
|
type: string
|
||||||
|
description: "The entity that owns the model."
|
||||||
|
example: "_"
|
||||||
|
state:
|
||||||
|
type: string
|
||||||
|
enum: [not_downloaded, downloaded, running, stopped]
|
||||||
|
description: "The current state of the model."
|
||||||
|
source_url:
|
||||||
|
type: string
|
||||||
|
format: uri
|
||||||
|
description: "URL to the source of the model."
|
||||||
|
example: "https://huggingface.co/TheBloke/zephyr-7B-beta-GGUF/blob/main/zephyr-7b-beta.Q4_K_M.gguf"
|
||||||
|
parameters:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
ctx_len:
|
||||||
|
type: integer
|
||||||
|
description: "Context length."
|
||||||
|
example: 2048
|
||||||
|
ngl:
|
||||||
|
type: integer
|
||||||
|
description: "Number of layers."
|
||||||
|
example: 100
|
||||||
|
embedding:
|
||||||
|
type: boolean
|
||||||
|
description: "Indicates if embedding is enabled."
|
||||||
|
example: true
|
||||||
|
n_parallel:
|
||||||
|
type: integer
|
||||||
|
description: "Number of parallel processes."
|
||||||
|
example: 4
|
||||||
|
# pre_prompt:
|
||||||
|
# type: string
|
||||||
|
# description: "Predefined prompt for initiating the chat."
|
||||||
|
# example: "A chat between a curious user and an artificial intelligence"
|
||||||
|
# user_prompt:
|
||||||
|
# type: string
|
||||||
|
# description: "Format of user's prompt."
|
||||||
|
# example: "USER: "
|
||||||
|
# ai_prompt:
|
||||||
|
# type: string
|
||||||
|
# description: "Format of AI's response."
|
||||||
|
# example: "ASSISTANT: "
|
||||||
|
temperature:
|
||||||
|
type: string
|
||||||
|
description: "Temperature setting for the model."
|
||||||
|
example: "0.7"
|
||||||
|
token_limit:
|
||||||
|
type: string
|
||||||
|
description: "Token limit for the model."
|
||||||
|
example: "2048"
|
||||||
|
top_k:
|
||||||
|
type: string
|
||||||
|
description: "Top-k setting for the model."
|
||||||
|
example: "0"
|
||||||
|
top_p:
|
||||||
|
type: string
|
||||||
|
description: "Top-p setting for the model."
|
||||||
|
example: "1"
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
engine:
|
||||||
|
type: string
|
||||||
|
description: "The engine used by the model."
|
||||||
|
example: "llamacpp"
|
||||||
|
quantization:
|
||||||
|
type: string
|
||||||
|
description: "Quantization parameter of the model."
|
||||||
|
example: "Q3_K_L"
|
||||||
|
size:
|
||||||
|
type: string
|
||||||
|
description: "Size of the model."
|
||||||
|
example: "7B"
|
||||||
|
required:
|
||||||
|
- id
|
||||||
|
- object
|
||||||
|
- created
|
||||||
|
- owned_by
|
||||||
|
- state
|
||||||
|
- source_url
|
||||||
|
- parameters
|
||||||
|
- metadata
|
||||||
|
|
||||||
|
DeleteModelResponse:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
description: "The identifier of the model that was deleted."
|
||||||
|
example: "model-zephyr-7B"
|
||||||
|
object:
|
||||||
|
type: string
|
||||||
|
description: "Type of the object, indicating it's a model."
|
||||||
|
default: "model"
|
||||||
|
deleted:
|
||||||
|
type: boolean
|
||||||
|
description: "Indicates whether the model was successfully deleted."
|
||||||
|
example: true
|
||||||
|
required:
|
||||||
|
- id
|
||||||
|
- object
|
||||||
|
- deleted
|
||||||
|
|
||||||
|
StartModelResponse:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
description: "The identifier of the model that was started."
|
||||||
|
example: "model-zephyr-7B"
|
||||||
|
object:
|
||||||
|
type: string
|
||||||
|
description: "Type of the object, indicating it's a model."
|
||||||
|
default: "model"
|
||||||
|
state:
|
||||||
|
type: string
|
||||||
|
description: "The current state of the model after the start operation."
|
||||||
|
example: "running"
|
||||||
|
required:
|
||||||
|
- id
|
||||||
|
- object
|
||||||
|
- state
|
||||||
|
|
||||||
|
StopModelResponse:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
description: "The identifier of the model that was started."
|
||||||
|
example: "model-zephyr-7B"
|
||||||
|
object:
|
||||||
|
type: string
|
||||||
|
description: "Type of the object, indicating it's a model."
|
||||||
|
default: "model"
|
||||||
|
state:
|
||||||
|
type: string
|
||||||
|
description: "The current state of the model after the start operation."
|
||||||
|
example: "stopped"
|
||||||
|
required:
|
||||||
|
- id
|
||||||
|
- object
|
||||||
|
- state
|
||||||
|
|
||||||
|
DownloadModelResponse:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
description: "The identifier of the model that was started."
|
||||||
|
example: "model-zephyr-7B"
|
||||||
|
object:
|
||||||
|
type: string
|
||||||
|
description: "Type of the object, indicating it's a model."
|
||||||
|
default: "model"
|
||||||
|
state:
|
||||||
|
type: string
|
||||||
|
description: "The current state of the model after the start operation."
|
||||||
|
example: "downloaded"
|
||||||
|
required:
|
||||||
|
- id
|
||||||
|
- object
|
||||||
|
- state
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user