База данных отслеживания истории разработки с использованием django-rest-framework

Я впервые использую API django-rest-framework. Вот мой вопрос:

Мне нужно спроектировать базу данных, в которой есть две таблицы:

  1. Сервер => Чтобы сохранить информацию о сервере, такую ​​как IP-адрес и имя сервера.

id: INT, name: VARCHAR, ip_address: VARCHAR

  1. Развертывание => Развертывания на сервере, включая дату развертывания и комментарий.

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, но не мог понять, как реализовать функции, которые я перечислил выше.

Пожалуйста, дайте мне знать, если у вас есть какие-либо идеи о том, как реализовать это, или если вы считаете, что другой дизайн базы данных больше соответствует этому требованию.

Спасибо!


person zeroliu    schedule 09.09.2013    source источник


Ответы (1)


Нашел этот вопрос, который очень похож на мой. Как я могу подать заявку фильтр для вложенного ресурса в среде Django REST?

И я решил свою проблему, используя SerializerMethodField

person zeroliu    schedule 09.09.2013