I am getting started with iPhone application development and would like to create an application that involves pulling data from from a web application. I will be developing the API using PHP and the Zend Framework. I have never created a public API before, nor an iPhone app that works with public data.
Here are some specific questions I have:
One of the things I will need to do is create a table view with data from the API.
- What data format should my API return? XML, JSON, HTML? (I’m assuming XML will be the easiest)
Let’s say my API has a fetchAll function which returns all the records in a database table, how should I format this data so it is easy to work with in my iPhone application?
# http://myapp.com/api/people/fetchAll
array(
0 => 'John',
1 => 'Sally',
2 => 'Chris'
)
Update: After doing some research I decided that (on the Server-side) I want to implement a RESTful API that returns JSON. So my iPhone application will ultimately be a REST client.
I also found this post, though it may be outdated now: Creating RESTful Web Service Clients
in Cocoa and Cocoa Touch
I would recommend using JSON.
On the server, you would want to return the data in a JSON format from your “fetchAll” request.
On the iPhone client app, after getting the data from the request
(try the ASIHTTPRequest library), you can parse the JSON using a library such as TouchJSON.
UPDATE
I still recommend JSON, but I just use NSURLConnection to communicate with APIs. Actually, I use the wrappers from the iOS Recipes book because they give nice block callbacks rather than needing to implement delegate methods.