Как должна выглядеть полезная нагрузка iOS JSON, отправляемая в API? - PullRequest
0 голосов
/ 15 мая 2018

У нас есть приложение для iOS, которое получает данные модели из API. Пользователь устройства iOS выполняет действия, которые связывают данные модели и создают отношения между ними. Затем iOS отправляет обратно в API, чтобы сохранить отношения и разрешить их просмотр в веб-приложении.

Полезная нагрузка JSON потенциально может быть большой, если все объекты, которые были связаны с новым отношением, представлены с их атрибутами.

"peoples_vehicles": [
     {
         "owner" : {
             "id" : 8282, <----------this would be a UUID
             "name" : "John Smith",  
             "address": "123 Fake Street",    
         }, 
         "vehicles" : [
             {
                 "id" : 1234,  <----------this would be a UUID
                 "name" : "FORD F150",
                 "make" : "F150",
                 "model" : "FORD",
                 "year" : "2017",
             },
             {
                 "id" : 5678,   <----------this would be a UUID
                 "name" : "FORD ESCAPE",
                 "make" : "ESCAPE",
                 "model" : "FORD",
                 "year" : "2013",
             }
         ]
    },
    {
       ... another person with their vehicles
    }
]

Поскольку данные, отправляемые обратно, представляют собой все данные, которые изначально были из API, должно ли приложение iOS даже не отправлять обратно все атрибуты? Должно ли приложение iOS просто отослать все отношения только с идентификаторами объектов? Мы используем UUID

"peoples_vehicles": [
     {
         "owner" : {
             "id" : 8282, <----------this would be a UUID
         }, 
         "vehicles" : [
             {
                 "id" : 1234,  <----------this would be a UUID
             },
             {
                 "id" : 5678,   <----------this would be a UUID
             }
         ]
    },
    {
       ... another person with their vehicles
    }
]

Кажется, мы больше склоняемся к отправке идентификаторов уже существующих данных. Из-за этого полезная нагрузка отправки из iOS в API имеет очень мало атрибутов, которые на самом деле являются строками (в этом примере - нет).

Бывают случаи, когда нам приходится создавать новые пользовательские объекты. В этом случае все атрибуты будут отправлены, и идентификатор этого нового объекта будет нулевым, чтобы указать, что этот объект должен быть создан.

"peoples_vehicles": [
     {
         "owner" : {
             "id" : 8282, <----this would be a pre-existing object
         }, 
         "vehicles" : [
             {
                 "id" : 1234,  <----this would be a pre-existing object
             },
             {
                 "id": null <----new object that needs to be saved
                 "name" : "FORD F150",
                 "make" : "F150",
                 "model" : "FORD",
                 "year" : "2017",
             }
         ]
    },
    {
       ... another person with their vehicles
    }
]

Это был бы достойный подход? Рассматривая Stripe и Shopify API в качестве примеров, это, кажется, работает хорошо, но я хотел убедиться, что ничего не пропустил и нужно ли мне включать атрибуты для уже существующих объектов.

...