openapi: 3.0.1 info: title: Burger Shop description: | The best burger API at quobix. You can find the testiest burgers on the world termsOfService: https://quobix.com contact: name: quobix license: name: Quobix version: "1.2" tags: - name: "pizza" description: pizza! externalDocs: description: "Find out more" url: "https://quobix.com/" - name: "Dressing" description: "Variety of dressings: cheese, veggie, oil and a lot more" externalDocs: description: "Find out more information about our products)" url: "https://quobix.com/" servers: - url: https://quobix.com/api - url: https://pb33f.com/api paths: /burgers: servers: - url: https://somwhere.quobix.com/api - url: https://pb33f.io/api post: operationId: createBurger tags: - "Meat" summary: Create a new burger description: A new burger for our menu, yummy yum yum. requestBody: description: Give us the new burger! content: application/json: schema: $ref: '#/components/schemas/Burger' examples: pbjBurger: summary: A horrible, nutty, sticky mess. value: name: Peanut And Jelly numPatties: 3 cakeBurger: summary: A sickly, sweet, atrocity value: name: Chocolate Cake Burger numPatties: 5 responses: "200": description: A tasty burger for you to eat. content: application/json: schema: $ref: '#/components/schemas/Burger' examples: quarterPounder: summary: A juicy two handler sammich value: name: Quarter Pounder with Cheese numPatties: 1 filetOFish: summary: A tasty treat from the sea value: name: Filet-O-Fish numPatties: 1 links: LocateBurger: operationId: locateBurger parameters: burgerId: '$response.body#/id' description: Go and get a tasty burger AnotherLocateBurger: operationId: locateBurger parameters: burgerId: '$response.body#/id' description: Go and get a another really tasty burger "500": description: Unexpected error creating a new burger. Sorry. content: application/json: schema: $ref: '#/components/schemas/Error' examples: unexpectedError: summary: oh my goodness value: message: something went terribly wrong my friend, no new burger for you. "422": description: Unprocessable entity content: application/json: schema: $ref: '#/components/schemas/Error' examples: unexpectedError: summary: invalid request value: message: unable to accept this request, looks bad, missing something. /burgers/{burgerId}: get: servers: - url: https://nowhere.quobix.com/api - url: https://pb33f.net/api operationId: locateBurger tags: - "Meat" summary: Search a burger by ID - returns the burger with that identifier description: Look up a tasty burger take it and enjoy it parameters: - in: path name: burgerId schema: type: string example: big-mac description: the name of the burger. use this to order your food required: true responses: "200": description: A tasty burger for you to eat. Wide variety of products to choose from content: application/json: schema: $ref: '#/components/schemas/Burger' examples: quarterPounder: summary: A juicy two handler sammich value: name: Quarter Pounder with Cheese numPatties: 1 filetOFish: summary: A tasty treat from the sea value: name: Filet-O-Fish numPatties: 1 links: ListBurgerDressings: operationId: listBurgerDressings parameters: dressingId: 'something here' description: 'Try the ketchup!' "404": description: Cannot find your burger. Sorry. We may have sold out of this type content: application/json: schema: $ref: '#/components/schemas/Error' examples: notFound: $ref: '#/components/examples/notFound' "500": description: Unexpected error. Sorry. content: application/json: schema: $ref: '#/components/schemas/Error' examples: unexpectedError: summary: oh my stars value: message: something went terribly wrong my friend, burger location crashed! /burgers/{burgerId}/dressings: get: operationId: listBurgerDressings tags: - "Dressing" summary: Get a list of all dressings available description: Same as the summary, look up a tasty burger, by its ID - the burger identifier parameters: - in: path name: burgerId schema: type: string example: big-mac description: the name of the our fantastic burger. You can pick a name from our menu required: true callbacks: myCallback: $ref: '#/components/callbacks/myCallback' responses: "200": links: getBurger: $ref: '#/components/links/getBurger' description: an array of content: application/json: schema: type: array items: $ref: '#/components/schemas/Dressing' "404": description: Cannot find your burger in which to list dressings. Sorry content: application/json: schema: $ref: '#/components/schemas/Error' "500": description: Unexpected error listing dressings for burger. Sorry. content: application/json: schema: $ref: '#/components/schemas/Error' /dressings/{dressingId}: get: operationId: getDressing tags: - "Dressing" summary: Get a specific dressing - you can choose the dressing from our menu description: Same as the summary, get a dressing, by its ID parameters: - in: path name: dressingId schema: type: string example: cheese description: This is the unique identifier for the dressing items. required: true responses: "404": description: Cannot find your dressing, sorry. content: application/json: schema: $ref: '#/components/schemas/Error' "500": description: Unexpected error getting a dressing. Sorry. content: application/json: schema: $ref: '#/components/schemas/Error' /dressings: get: operationId: getAllDressings tags: - "Dressing" summary: Get all dressings available in our store description: Get all dressings and choose from them responses: "200": $ref: '#/components/responses/dressingResponse' "500": description: Unexpected error. Sorry. content: application/json: schema: $ref: '#/components/schemas/Error' components: responses: dressingResponse: description: an array of dressings content: application/json: schema: type: array items: $ref: '#/components/schemas/Dressing' callbacks: myCallback: '{$request.query.queryUrl}': post: requestBody: description: Callback payload content: 'application/json': schema: $ref: '#/components/schemas/Fries' responses: '200': description: callback successfully processed links: burger: operationId: getBurger parameters: burgerId: $request.path.id headers: MyHeader: description: a header examples: notFound: summary: burger missing value: message: can't find a burger with that ID, we may have sold out my friend. schemas: Error: type: object description: Error defining what went wrong when providing a specification. The message should help indicate the issue clearly. properties: message: type: string description: returns the error message if something wrong happens example: No such burger as 'Big-Whopper' Burger: type: object description: The tastiest food on the planet you would love to eat everyday required: - name - numPatties properties: name: type: string description: The name of your tasty burger - burger names are listed in our menus example: Big Mac numPatties: type: integer description: The number of burger patties used example: 2 numTomatoes: type: integer description: how many slices of orange goodness would you like? example: 1 Fries: type: object description: golden slices of happy fun joy required: - potatoShape - favoriteDressings - favoriteDrink properties: seasoning: type: array description: herbs and spices for your golden joy items: type: string description: type of herb or spice used to liven up the yummy example: salt potatoShape: type: string description: what type of potato shape? wedges? shoestring? example: Crispy Shoestring favoriteDressings: type: array items: $ref: '#/components/schemas/Dressing' favoriteBurger: $ref: '#/components/schemas/Burger' favoriteDrink: $ref: '#/components/schemas/Drink' Dressing: type: object description: This is the object that contains the information about the content of the dressing required: - name properties: name: type: string description: The name of your dressing you can pick up from the menu example: Cheese Drink: type: object description: a frosty cold beverage can be coke or sprite required: - size - drinkType properties: ice: type: boolean drinkType: description: select from coke or sprite enum: - coke - sprite size: type: string description: what size man? S/M/L example: M