UNPKG

swagger-parser-mock

Version:

一个简单的 Swagger 文档解析器,支持生成演示数据与数据实体类

453 lines (452 loc) 13.9 kB
{ "openapi": "3.0.0", "info": { "title": "Uber API", "description": "Move your app forward with the Uber API", "version": "1.0.0" }, "servers": [ { "url": "https://api.uber.com/v1" } ], "paths": { "/products": { "get": { "summary": "Product Types", "description": "The Products endpoint returns information about the Uber products offered at a given location. The response includes the display name and other details about each product, and lists the products in the proper display order.", "parameters": [ { "name": "latitude", "in": "query", "description": "Latitude component of location.", "required": true, "schema": { "type": "number", "format": "double" } }, { "name": "longitude", "in": "query", "description": "Longitude component of location.", "required": true, "schema": { "type": "number", "format": "double" } } ], "security": [ { "apikey": [] } ], "tags": [ "Products" ], "responses": { "200": { "description": "An array of products", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProductList" } } } }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/estimates/price": { "get": { "summary": "Price Estimates", "description": "The Price Estimates endpoint returns an estimated price range for each product offered at a given location. The price estimate is provided as a formatted string with the full price range and the localized currency symbol.<br><br>The response also includes low and high estimates, and the [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) currency code for situations requiring currency conversion. When surge is active for a particular product, its surge_multiplier will be greater than 1, but the price estimate already factors in this multiplier.", "parameters": [ { "name": "start_latitude", "in": "query", "description": "Latitude component of start location.", "required": true, "schema": { "type": "number", "format": "double" } }, { "name": "start_longitude", "in": "query", "description": "Longitude component of start location.", "required": true, "schema": { "type": "number", "format": "double" } }, { "name": "end_latitude", "in": "query", "description": "Latitude component of end location.", "required": true, "schema": { "type": "number", "format": "double" } }, { "name": "end_longitude", "in": "query", "description": "Longitude component of end location.", "required": true, "schema": { "type": "number", "format": "double" } } ], "tags": [ "Estimates" ], "responses": { "200": { "description": "An array of price estimates by product", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PriceEstimate" } } } } }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/estimates/time": { "get": { "summary": "Time Estimates", "description": "The Time Estimates endpoint returns ETAs for all products offered at a given location, with the responses expressed as integers in seconds. We recommend that this endpoint be called every minute to provide the most accurate, up-to-date ETAs.", "parameters": [ { "name": "start_latitude", "in": "query", "description": "Latitude component of start location.", "required": true, "schema": { "type": "number", "format": "double" } }, { "name": "start_longitude", "in": "query", "description": "Longitude component of start location.", "required": true, "schema": { "type": "number", "format": "double" } }, { "name": "customer_uuid", "in": "query", "schema": { "type": "string", "format": "uuid" }, "description": "Unique customer identifier to be used for experience customization." }, { "name": "product_id", "in": "query", "schema": { "type": "string" }, "description": "Unique identifier representing a specific product for a given latitude & longitude." } ], "tags": [ "Estimates" ], "responses": { "200": { "description": "An array of products", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Product" } } } } }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/me": { "get": { "summary": "User Profile", "description": "The User Profile endpoint returns information about the Uber user that has authorized with the application.", "tags": [ "User" ], "responses": { "200": { "description": "Profile information for a user", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Profile" } } } }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } }, "/history": { "get": { "summary": "User Activity", "description": "The User Activity endpoint returns data about a user's lifetime activity with Uber. The response will include pickup locations and times, dropoff locations and times, the distance of past requests, and information about which products were requested.<br><br>The history array in the response will have a maximum length based on the limit parameter. The response value count may exceed limit, therefore subsequent API requests may be necessary.", "parameters": [ { "name": "offset", "in": "query", "schema": { "type": "integer", "format": "int32" }, "description": "Offset the list of returned results by this amount. Default is zero." }, { "name": "limit", "in": "query", "schema": { "type": "integer", "format": "int32" }, "description": "Number of items to retrieve. Default is 5, maximum is 100." } ], "tags": [ "User" ], "responses": { "200": { "description": "History information for the given user", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Activities" } } } }, "default": { "description": "Unexpected error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } } } } }, "components": { "securitySchemes": { "apikey": { "type": "apiKey", "name": "server_token", "in": "query" } }, "schemas": { "Product": { "properties": { "product_id": { "type": "string", "description": "Unique identifier representing a specific product for a given latitude & longitude. For example, uberX in San Francisco will have a different product_id than uberX in Los Angeles." }, "description": { "type": "string", "description": "Description of product." }, "display_name": { "type": "string", "description": "Display name of product." }, "capacity": { "type": "integer", "description": "Capacity of product. For example, 4 people." }, "image": { "type": "string", "description": "Image URL representing the product." } } }, "ProductList": { "properties": { "products": { "description": "Contains the list of products", "type": "array", "items": { "$ref": "#/components/schemas/Product" } } } }, "PriceEstimate": { "properties": { "product_id": { "type": "string", "description": "Unique identifier representing a specific product for a given latitude & longitude. For example, uberX in San Francisco will have a different product_id than uberX in Los Angeles" }, "currency_code": { "type": "string", "description": "[ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) currency code." }, "display_name": { "type": "string", "description": "Display name of product." }, "estimate": { "type": "string", "description": "Formatted string of estimate in local currency of the start location. Estimate could be a range, a single number (flat rate) or \"Metered\" for TAXI." }, "low_estimate": { "type": "number", "description": "Lower bound of the estimated price." }, "high_estimate": { "type": "number", "description": "Upper bound of the estimated price." }, "surge_multiplier": { "type": "number", "description": "Expected surge multiplier. Surge is active if surge_multiplier is greater than 1. Price estimate already factors in the surge multiplier." } } }, "Profile": { "properties": { "first_name": { "type": "string", "description": "First name of the Uber user." }, "last_name": { "type": "string", "description": "Last name of the Uber user." }, "email": { "type": "string", "description": "Email address of the Uber user" }, "picture": { "type": "string", "description": "Image URL of the Uber user." }, "promo_code": { "type": "string", "description": "Promo code of the Uber user." } } }, "Activity": { "properties": { "uuid": { "type": "string", "description": "Unique identifier for the activity" } } }, "Activities": { "properties": { "offset": { "type": "integer", "format": "int32", "description": "Position in pagination." }, "limit": { "type": "integer", "format": "int32", "description": "Number of items to retrieve (100 max)." }, "count": { "type": "integer", "format": "int32", "description": "Total number of items available." }, "history": { "type": "array", "items": { "$ref": "#/components/schemas/Activity" } } } }, "Error": { "properties": { "code": { "type": "string" }, "message": { "type": "string" }, "fields": { "type": "string" } } } } } }