Compare commits
2 Commits
ce78d23db3
...
f18f1a1662
Author | SHA1 | Date |
---|---|---|
Владимир Шалимов | f18f1a1662 | |
Владимир Шалимов | 71409f40dc |
23
main.go
23
main.go
|
@ -14,9 +14,6 @@ func main() {
|
|||
// Создание сервера
|
||||
r := gin.Default()
|
||||
|
||||
|
||||
|
||||
|
||||
r.POST("/product", func(c *gin.Context) {
|
||||
var product database.Product
|
||||
if err := c.ShouldBind(&product); err != nil {
|
||||
|
@ -26,27 +23,22 @@ func main() {
|
|||
controllers.CreateProduct(c, product)
|
||||
})
|
||||
|
||||
|
||||
r.DELETE("/product/:id", func(c *gin.Context) {
|
||||
controllers.DeleteProduct(c)
|
||||
})
|
||||
|
||||
|
||||
r.GET("/product", func(c *gin.Context) {
|
||||
controllers.GetProducts(c)
|
||||
})
|
||||
|
||||
|
||||
r.GET("/product/:id", func(c *gin.Context) {
|
||||
controllers.GetProductInfo(c)
|
||||
})
|
||||
|
||||
|
||||
r.GET("/product/:id/buy", func(c *gin.Context) {
|
||||
controllers.BuyProduct(c)
|
||||
})
|
||||
|
||||
|
||||
r.POST("/manufacturer", func(c *gin.Context) {
|
||||
var manufacturer database.Manufacturer
|
||||
if err := c.ShouldBind(&manufacturer); err != nil {
|
||||
|
@ -56,19 +48,14 @@ func main() {
|
|||
controllers.CreateManufacturer(c, manufacturer)
|
||||
})
|
||||
|
||||
|
||||
r.DELETE("/manufacturer/:id", func(c *gin.Context) {
|
||||
controllers.DeleteManufacturer(c)
|
||||
})
|
||||
|
||||
|
||||
|
||||
r.GET("/manufacturer", func(c *gin.Context) {
|
||||
controllers.GetManufacturers(c)
|
||||
})
|
||||
|
||||
|
||||
|
||||
r.PATCH("/manufacturer/:id", func(c *gin.Context) {
|
||||
var manufacturer types.ManufacturerPatchRequest
|
||||
if err := c.ShouldBind(&manufacturer); err != nil {
|
||||
|
@ -78,8 +65,6 @@ func main() {
|
|||
controllers.EditManufacture(c, manufacturer)
|
||||
})
|
||||
|
||||
|
||||
|
||||
r.POST("/registration", func(c *gin.Context) {
|
||||
var form types.RegisterRequest
|
||||
if err := c.ShouldBind(&form); err != nil {
|
||||
|
@ -89,8 +74,6 @@ func main() {
|
|||
controllers.RegisterUser(c, form)
|
||||
})
|
||||
|
||||
|
||||
|
||||
r.POST("/login", func(c *gin.Context) {
|
||||
var register types.LoginRequest
|
||||
if err := c.ShouldBind(®ister); err != nil {
|
||||
|
@ -100,13 +83,10 @@ func main() {
|
|||
controllers.LoginUser(c, register)
|
||||
})
|
||||
|
||||
|
||||
r.GET("/user", func(c *gin.Context) {
|
||||
controllers.GetUser(c)
|
||||
})
|
||||
|
||||
|
||||
|
||||
r.PATCH("/user", func(c *gin.Context) {
|
||||
var user types.EditUserNameRequest
|
||||
if err := c.ShouldBind(&user); err != nil {
|
||||
|
@ -116,7 +96,6 @@ func main() {
|
|||
controllers.EditUserName(c, user)
|
||||
})
|
||||
|
||||
|
||||
r.POST("/user/addmoney", func(c *gin.Context) {
|
||||
var moneyRequest types.AddMoneyRequest
|
||||
if err := c.ShouldBind(&moneyRequest); err != nil {
|
||||
|
@ -126,7 +105,6 @@ func main() {
|
|||
controllers.AddMoneyToUser(c, moneyRequest)
|
||||
})
|
||||
|
||||
|
||||
r.GET("/user/products", func(c *gin.Context) {
|
||||
controllers.GetBuyedProducts(c)
|
||||
})
|
||||
|
@ -150,4 +128,3 @@ func main() {
|
|||
}()
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
# Документация API
|
||||
|
||||
## Обзор
|
||||
Этот проект представляет собой RESTful API для управления товарами, производителями и пользователями. В качестве ORM используется GORM.
|
||||
|
||||
## Endpoints
|
||||
|
||||
### Товары
|
||||
|
||||
- **POST /product** - Создание нового товара. Требуется JSON с данными товара.
|
||||
- **DELETE /product/:id** - Удаление товара по идентификатору.
|
||||
- **GET /product** - Получение списка всех товаров.
|
||||
- **GET /product/:id** - Получение информации о конкретном товаре.
|
||||
- **GET /product/:id/buy** - Покупка товара по идентификатору.
|
||||
|
||||
### Производители
|
||||
|
||||
- **POST /manufacturer** - Создание нового производителя. Требуется JSON с данными производителя.
|
||||
- **DELETE /manufacturer/:id** - Удаление производителя по идентификатору.
|
||||
- **GET /manufacturer** - Получение списка всех производителей.
|
||||
- **PATCH /manufacturer/:id** - Редактирование данных производителя. Требуется JSON с изменениями.
|
||||
|
||||
### Пользователи
|
||||
|
||||
- **POST /registration** - Регистрация нового пользователя. Требуется JSON с данными пользователя.
|
||||
- **POST /login** - Вход пользователя. Требуется JSON с данными для входа.
|
||||
- **GET /user** - Получение данных текущего пользователя.
|
||||
- **PATCH /user** - Редактирование имени пользователя. Требуется JSON с новым именем.
|
||||
- **POST /user/addmoney** - Добавление денег на счет пользователя. Требуется JSON с суммой.
|
||||
- **GET /user/products** - Получение списка купленных пользователем товаров.
|
||||
|
||||
## Запуск сервера
|
||||
|
||||
Сервер запускается в докер контейнере
|
||||
|
||||
Сначала нужно собрать image командой:
|
||||
```
|
||||
docker build -t ravonzz/go-testapi .
|
||||
```
|
||||
|
||||
Затем можно запускать контейнер вместе с БД Postgresql командой:
|
||||
```
|
||||
docker-compose up -d
|
||||
```
|
Loading…
Reference in New Issue