Created
August 17, 2011 00:41
-
-
Save rayfix/1150539 to your computer and use it in GitHub Desktop.
What is the best format for RestKit?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
RestKit allows a great deal of customization and can probably be made to handle most formats. | |
Since I have full control over the server (now), I want to put the onus on the server as much | |
as possible and reduce unnecessary bandwidth. However, I want to keep the RestKit side code | |
as easy, and concise as possible. | |
So suppose I have a set of widget classes with ids and names with standard CRUD operations. | |
I have an index action which could potentially return a large number of widgets and so need | |
to be paginated. Here is one way I thought of. | |
Create Action | |
iOS Sends: { widget: { name: "foo" } } | |
Server Responds: { widget: { id: 3, name: "foo", user_id: 30 } } | |
Read Action | |
iOS Sends: { page: 1} (or nothing at all) | |
Server Responds: { pagination: { page: 1, per_page: 100, total: 1000 }, widgets: | |
[ widget: { id: 1, name: foo, user_id: 30}, widget: { id: 2, name: foo, user_id: 30}, ... } ] } | |
Update Action | |
iOS Sends: { id: 200, widget: { name: "new name foo" } } | |
Server Responds: { widget: { id: 200, name: "foo", user_id: 30 } } | |
Destroy Action | |
iOS Sends { id: 3 } | |
Server Responds head :ok | |
Does this look like a good way to structure things, or are there better formats that make the | |
RestKit code easier? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
On Aug 16, 2011, at 6:48 PM, Blake Watters wrote:
This looks pretty reasonable to me. I would probably centralize the pagination logic into the target class of the pagination keyPath and use that object to mint additional object loaders to paginate in additional results. There may be an opportunity to build a reusable piece of pagination code around this case...