Bookstore API

v1 · REST contract · shapes come from the OpenAPI source
AuthSign in and identity▾
POST/auth/registerCreate an account▸

Request body

application/json
schema: Credentials

Responses

CodeDescriptionSchema
201Account createdSession
409Email already registeredError
POST/auth/loginExchange credentials for a session▸

Request body

application/json
schema: Credentials

Responses

CodeDescriptionSchema
200Signed inSession
401Bad credentialsError
CatalogBooks and authors▾
GET/booksList and search books▸

Parameters

NameInTypeDescription
qquerystringFull-text query
limitqueryintegerPage size, max 100

Responses

CodeDescriptionSchema
200A page of booksBook[]
GET/books/{id}Get one book▸

Parameters

NameInTypeDescription
id *pathULIDBook id

Responses

CodeDescriptionSchema
200The bookBook
404No such bookError
POST/booksAdd a book🔒 auth▸

Request body

application/json
schema: BookInput

Responses

CodeDescriptionSchema
201Book createdBook
401Not signed inError
PATCH/books/{id}Edit a book🔒 auth▸

Parameters

NameInTypeDescription
id *pathULIDBook id

Request body

application/json
schema: BookInput (partial)

Responses

CodeDescriptionSchema
200Updated bookBook
404No such bookError
DELETE/books/{id}Remove a book🔒 auth▸

Parameters

NameInTypeDescription
id *pathULIDBook id

Responses

CodeDescriptionSchema
204Deleted, no body—
404No such bookError
OrdersCarts and purchases▾
GET/ordersList the caller's orders🔒 auth▸

Responses

CodeDescriptionSchema
200A page of ordersOrder[]
401Not signed inError
POST/ordersPlace an order🔒 auth▸

Request body

application/json
schema: OrderInput

Responses

CodeDescriptionSchema
201Order placedOrder
422Empty or invalid cartError

Schemas

Credentialsobject · 2 properties▸
PropertyTypeRequired
emailstringrequired
passwordstringrequired
Sessionobject · 3 properties▸
PropertyTypeRequired
tokenstringrequired
user_idULIDrequired
expires_atdatetimerequired
Bookobject · 5 properties▸
PropertyTypeRequired
idULIDrequired
titlestringrequired
author_idULIDrequired
price_centsintegerrequired
isbnstringoptional
BookInputobject · 4 properties▸
PropertyTypeRequired
titlestringrequired
author_idULIDrequired
price_centsintegerrequired
isbnstringoptional
OrderInputobject · 1 property▸
PropertyTypeRequired
itemsLineItem[]required
LineItemobject · 2 properties▸
PropertyTypeRequired
book_idULIDrequired
quantityintegerrequired
Orderobject · 4 properties▸
PropertyTypeRequired
idULIDrequired
statusenum(cart,paid,shipped)required
total_centsintegerrequired
itemsLineItem[]required
Errorobject · 2 properties▸
PropertyTypeRequired
codestringrequired
messagestringrequired