Пользовательские типы MIME с RestKit - PullRequest
1 голос
/ 16 ноября 2011

Я бился головой о стену, вокруг которой можно выбрать методы в RestKit, чтобы выполнить то, что я пытаюсь достичь.

Мне дали спецификацию API, которая требует от меня POST и объекта в формате JSON с пользовательским типом MIME, а затем получит обновленное представление JSON этого объекта и десериализует его.

Я попытался просто использовать [[RKObjectManager sharedManager] postObject: customobject Delegate: Handler], однако я не могу заставить его использовать что-либо, кроме кодировки формы.

Затем я попытался [[RKObjectManager sharedManager] objectLoaderForObject:customObject method:RKRequestMethodPost delegate:handler] и установил тип MIME сериализации на @"application/json". Это работает для сериализации объекта как JSON, но не помогает с пользовательским Content-Type.

Используя второй метод, описанный выше, я попытался реализовать сообщение HTTPHeaderValueForContentType, но это никогда не вызывалось, и объект params является NSDictionary.

Оттуда я попытался добавить пользовательский MIME-тип Parser Registry, используя ту же логику, что и [RKParseRegistry autoconfigure], но я чувствую, что с каждым шагом я копаю глубже в область взлома.

Проблема и с этим подходом в том, что он не помогает моему заголовку «Accepts», он все еще «application/json».

Ниже приведена некоторая спецификация о API REST, который мне нужно использовать (с некоторыми измененными ключевыми словами)

NB: Я добавил это в группу Google RestKit


Request POST /customobject/ HTTP/1.1
Accepts application/vnd.company.customobject-v1+json
application/vnd.company.customobject-v1+xml
Content-Type    application/vnd.company.customobject-v1+json
Sample content  {
  "type"      : "type-a",
  "direction" : "left",
  "listofitems": [
    { "itemnumber": "123"}
    ]
}


Response    HTTP/1.1 201 Created
Content-Type    application/json
Location    /customobject/[id]
...