176 lines
4.5 KiB
YAML
176 lines
4.5 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: Shopping Cart API
|
|
description: |
|
|
Shopping Cart API is a REST API responsible for manage the shopping car for an e-commerce with a Blockchain storage
|
|
system, where the users could create, update and delete their cart.
|
|
version: 1.0.0
|
|
paths:
|
|
/carts/{id}:
|
|
get:
|
|
summary: |
|
|
This endpoint returns a cart for the given id.
|
|
parameters:
|
|
- name: id
|
|
description: The id of the cart.
|
|
required: true
|
|
in: path
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateCartRes'
|
|
'404':
|
|
description: Cart not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
error:
|
|
type: string
|
|
example: Cart not found for the given ID
|
|
post:
|
|
summary: |
|
|
This endpoint creates a cart for the given id.
|
|
parameters:
|
|
- name: id
|
|
description: The id of the cart.
|
|
required: true
|
|
in: path
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CreateCartReq'
|
|
responses:
|
|
'201':
|
|
description: created
|
|
'409':
|
|
description: Already exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
error:
|
|
type: string
|
|
example: Invalid identifier.
|
|
'400':
|
|
description: Invalid body provided
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
error:
|
|
type: string
|
|
example: Invalid body provided, check the payload.
|
|
patch:
|
|
summary: |
|
|
This endpoint updates totally or partially a cart for the given id.
|
|
parameters:
|
|
- name: id
|
|
description: The id of the cart.
|
|
required: true
|
|
in: path
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UpdateCartReq'
|
|
responses:
|
|
'200':
|
|
description: created
|
|
'404':
|
|
description: Not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
error:
|
|
type: string
|
|
example: Cart not found for the given id
|
|
'400':
|
|
description: Invalid body provided
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
error:
|
|
type: string
|
|
example: Invalid body provided, check the payload.
|
|
delete:
|
|
summary: |
|
|
This endpoint deletes a cart for the given id.
|
|
parameters:
|
|
- name: id
|
|
description: The id of the cart.
|
|
required: true
|
|
in: path
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: deleted
|
|
'404':
|
|
description: Cart not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
error:
|
|
type: string
|
|
example: Cart not found for the given ID
|
|
components:
|
|
schemas:
|
|
CartItem:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
name:
|
|
type: string
|
|
quantity:
|
|
type: number
|
|
price:
|
|
type: number
|
|
CartItems:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/CartItem'
|
|
CreateCartReq:
|
|
type: object
|
|
properties:
|
|
items:
|
|
$ref: '#/components/schemas/CartItems'
|
|
UpdateCartReq:
|
|
properties:
|
|
items:
|
|
$ref: '#/components/schemas/CartItems'
|
|
CreateCartRes:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
items:
|
|
$ref: '#/components/schemas/CartItems'
|
|
|