| { |
| "openapi": "3.1.0", |
| "info": { |
| "title": "OpenAPI Plant Store", |
| "description": "A sample API that uses a plant store as an example to demonstrate features in the OpenAPI specification", |
| "license": { |
| "name": "MIT" |
| }, |
| "version": "1.0.0" |
| }, |
| "servers": [ |
| { |
| "url": "http://sandbox.mintlify.com" |
| } |
| ], |
| "security": [ |
| { |
| "bearerAuth": [] |
| } |
| ], |
| "paths": { |
| "/plants": { |
| "get": { |
| "description": "Returns all plants from the system that the user has access to", |
| "parameters": [ |
| { |
| "name": "limit", |
| "in": "query", |
| "description": "The maximum number of results to return", |
| "schema": { |
| "type": "integer", |
| "format": "int32" |
| } |
| } |
| ], |
| "responses": { |
| "200": { |
| "description": "Plant response", |
| "content": { |
| "application/json": { |
| "schema": { |
| "type": "array", |
| "items": { |
| "$ref": "#/components/schemas/Plant" |
| } |
| } |
| } |
| } |
| }, |
| "400": { |
| "description": "Unexpected error", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/Error" |
| } |
| } |
| } |
| } |
| } |
| }, |
| "post": { |
| "description": "Creates a new plant in the store", |
| "requestBody": { |
| "description": "Plant to add to the store", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/NewPlant" |
| } |
| } |
| }, |
| "required": true |
| }, |
| "responses": { |
| "200": { |
| "description": "plant response", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/Plant" |
| } |
| } |
| } |
| }, |
| "400": { |
| "description": "unexpected error", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/Error" |
| } |
| } |
| } |
| } |
| } |
| } |
| }, |
| "/plants/{id}": { |
| "delete": { |
| "description": "Deletes a single plant based on the ID supplied", |
| "parameters": [ |
| { |
| "name": "id", |
| "in": "path", |
| "description": "ID of plant to delete", |
| "required": true, |
| "schema": { |
| "type": "integer", |
| "format": "int64" |
| } |
| } |
| ], |
| "responses": { |
| "204": { |
| "description": "Plant deleted", |
| "content": {} |
| }, |
| "400": { |
| "description": "unexpected error", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/Error" |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| }, |
| "webhooks": { |
| "/plant/webhook": { |
| "post": { |
| "description": "Information about a new plant added to the store", |
| "requestBody": { |
| "description": "Plant added to the store", |
| "content": { |
| "application/json": { |
| "schema": { |
| "$ref": "#/components/schemas/NewPlant" |
| } |
| } |
| } |
| }, |
| "responses": { |
| "200": { |
| "description": "Return a 200 status to indicate that the data was received successfully" |
| } |
| } |
| } |
| } |
| }, |
| "components": { |
| "schemas": { |
| "Plant": { |
| "required": [ |
| "name" |
| ], |
| "type": "object", |
| "properties": { |
| "name": { |
| "description": "The name of the plant", |
| "type": "string" |
| }, |
| "tag": { |
| "description": "Tag to specify the type", |
| "type": "string" |
| } |
| } |
| }, |
| "NewPlant": { |
| "allOf": [ |
| { |
| "$ref": "#/components/schemas/Plant" |
| }, |
| { |
| "required": [ |
| "id" |
| ], |
| "type": "object", |
| "properties": { |
| "id": { |
| "description": "Identification number of the plant", |
| "type": "integer", |
| "format": "int64" |
| } |
| } |
| } |
| ] |
| }, |
| "Error": { |
| "required": [ |
| "error", |
| "message" |
| ], |
| "type": "object", |
| "properties": { |
| "error": { |
| "type": "integer", |
| "format": "int32" |
| }, |
| "message": { |
| "type": "string" |
| } |
| } |
| } |
| }, |
| "securitySchemes": { |
| "bearerAuth": { |
| "type": "http", |
| "scheme": "bearer" |
| } |
| } |
| } |
| } |