There are a few ways to accomplish posting a photo from an iPhone or iPad to a REST API but the method I’ve found to be the most useful is to create a multi-part form request for the task.
It would be nice to just send the byte stream up on its own, but typically you need to attach some other models or data to the request so that you know what context to place the image into on the server. Borrowing from good old HTML Forms, this method will allow you to submit a whole bunch of data in a variety of formats in a single shot.
As well as this works, there is something unpleasant about generating a multi-part form request for iOS. It’s a specific structure like any other data format, but it’s got some peculiarities that make it feel...hackish. Here is an example of a multi-part form request so you can see what will ultimately be generated:
POST /path/to/script.php HTTP/1.0
Host: example.com
Content-type: multipart/form-data, boundary=AaB03x