## API 设计文档
- Template: https://gist.github.com/azagniotov/a4b16faf0febd12efbc6c3d7370383a6
------------------------------------------------------------------------------------------
#### Product API
POST /api/v1/product/create Creates new product with name,price,stock
##### Parameters
> | name | type | data type | description |
> |-----------|-----------|-------------------------|-----------------------------------------------------------------------|
> | name | required | string | Product name |
> | price | required | number | Product price |
> | stock | required | number | Number of products in stock |
##### Responses
> | http code | content-type | response |
> |---------------|-----------------------------------|---------------------------------------------------------------------|
> | `201` | `application/json` | `{"code":"201", "name":"name", "message":"Product created"}` |
> | `409` | `application/json` | `{"code":"409","message":"Product with the same name alread exists"}` |
PUT /api/v1/product/update Update the product name and/or price
##### Parameters
> | name | type | data type | description |
> |-----------|-----------|-------------------------|-----------------------------------------------------------------------|
> | name | required | string | Product name |
> | price | optional | number | New product price |
> | stock | optional | number | Updated product stock |
##### Responses
> | http code | content-type | response |
> |---------------|-----------------------------------|---------------------------------------------------------------------|
> | `200` | `application/json` | `{"code":"200", "name":"name", "message":"Product updated"}` |
> | `404` | `application/json` | `{"code":"404","message":"Product not found"}` |
GET /api/v1/product/{name} Get product
##### Responses
> | http code | content-type | response |
> |---------------|-----------------------------------|---------------------------------------------------------------------|
> | `200` | `application/json` | `{"code":"200", "product": {"name","price","stock"}, "message":"Product retrieved"}` |
> | `404` | `application/json` | `{"code":"404","message":"Product not found"}` |
GET /api/v1/products Get all the products
##### Responses
> | http code | content-type | response |
> |---------------|-----------------------------------|---------------------------------------------------------------------|
> | `200` | `application/json` | `{"code":"200", "products": Array of , "message":"Products retrieved"}` |
DELETE /api/v1/product/{name} Delete a product
##### Responses
> | http code | content-type | response |
> |---------------|-----------------------------------|---------------------------------------------------------------------|
> | `200` | `application/json` | `{"code":"200", "name":"name", "message":"Product deleted"}` |
> | `404` | `application/json` | `{"code":"404","message":"Product not found"}` |
DELETE /api/v1/products Delete all products
##### Responses
> | http code | content-type | response |
> |---------------|-----------------------------------|---------------------------------------------------------------------|
> | `200` | `application/json` | `{"code":"200", "message":"All products deleted"}` |
#### Java 实现