Написать HTTP сервер для обработки базовых методов (CRUD) таблицы city
.
id
serial (primary key)name
text not nullcode
text not nullcountry_code
text not null
SQLite или PostgreSQL
- GET /cities - список городов
- POST /cities - создать новый город
- GET /cities/{id} - получить один город по id
- PUT /cities/{id} - изменить город по id
- DELETE /cities/{id} - удалить город по id
- Нужно чтобы хост и порт для http-сервера можно было указывать через переменную среду. Например: HTTP_PORT=127.0.0.1:9090 go run main.go
- Необходимо разместить код проекта в github.com
Наличие авто-тестов
Ссылка на репозитории в github.com
{
"name": "Almaty",
"code": "727",
"country_code": "02"
}
response:
{
"status": "OK",
"message": "city with id 4 successfully created"
}
- GET http://127.0.0.1:9090/api/v1/cities
- response:
{
"status": "OK",
"data": [
{
"id": 1,
"name": "Almaty",
"code": "727",
"country_code": "02"
},
{
"id": 2,
"name": "Almaty",
"code": "727",
"country_code": "02"
},
{
"id": 3,
"name": "Almaty",
"code": "727",
"country_code": "02"
},
{
"id": 4,
"name": "Almaty",
"code": "727",
"country_code": "02"
}
]
}
- response:
{
"status": "OK",
"data": {
"id": 3,
"name": "Almaty",
"code": "727",
"country_code": "02"
}
}
- response:
{
"status": "OK",
"message": "city with id 4 succesfully deleted"
}
{
"name": "Astana",
"code": "7172",
"country_code": "01"
}
- response:
{
"status": "OK",
"message": "city with id 3 succesfully deleted"
}