Я впервые использую API django-rest-framework. Вот мой вопрос:
Мне нужно спроектировать базу данных, в которой есть две таблицы:
- Сервер => Чтобы сохранить информацию о сервере, такую как IP-адрес и имя сервера.
id: INT, name: VARCHAR, ip_address: VARCHAR
- Развертывание => Развертывания на сервере, включая дату развертывания и комментарий.
id: INT, server_id: FK to Server, deploy_date: DATETIME, message: VARCHAR
Меня просят отслеживать информацию о развертывании и разрабатывать следующие API:
get /servers/ => get all the server information with the latest deploy on that server
Example:
[
{
"id" : 1,
"name" : "qa-001",
"ip_address" : "192.168.1.1",
"deploy" :
{
"id" : 1,
"deploy_date" : "2013-09-09 12:00:00",
"message" : "test new api"
}
},
{
"id" : 2,
"name" : "qa-002",
"ip_address" : "192.168.1.2",
"deploy" :
{
"id" : 2,
"deploy_date" : "2013-09-10 12:00:00",
"message" : "test second message"
}
}
]
get /deploys/ => get all the deploy information
Example:
[
{
"id" : 1,
"deploy_date" : "2013-09-09 12:00:00",
"message" : "test new api",
"server_id" : 1
},
{
"id" : 2,
"deploy_date" : "2013-09-10 12:00:00",
"message" : "test second message",
"server_id" : 2
},
{
"id" : 3,
"deploy_date" : "2013-09-08 12:00:00",
"message" : "test new api",
"server_id" : 1
}
]
// Deploy 3 does not show up in the get servers return json
// because deploy 1 was deployed on the same server but later than deploy 3.
POST /deploys/ => To insert a new deploy
POST /servers/ => To insert a new server
...
Я играл с учебным кодом django-rest-framework и читал о различной документации API, но не мог понять, как реализовать функции, которые я перечислил выше.
Пожалуйста, дайте мне знать, если у вас есть какие-либо идеи о том, как реализовать это, или если вы считаете, что другой дизайн базы данных больше соответствует этому требованию.
Спасибо!