299 lines
10 KiB
YAML
299 lines
10 KiB
YAML
|
# extracted from "https://github.com/Mermade/openapi3-examples"
|
||
|
# this is an example of the Uber API
|
||
|
# as a demonstration of an API spec in YAML
|
||
|
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: integer
|
||
|
format: int32
|
||
|
message:
|
||
|
type: string
|
||
|
fields:
|
||
|
type: string
|