Is there a way we can give dummy input to restkit? - ios

I am pretty new to the Restkit. I know how my restful response will be. Its not ready yet to get from the server side. Is there a way to give dummy input directly to restkit ?
We can give json text file as an input to NSUrlConnection, similarly how to do it here?

I have been able to do this is
- (RKObjectMappingResult*)mapResponseWithMappingProvider:(RKObjectMappingProvider*)mappingProvider toObject:(id)targetObject error:(NSError**)error {
in RKObjectLoader.m
where I optionally read a static json text file and replace the bodyAsString. If you look at
[self.URL description]
you can scan the URL and maybe read a test file based on the request url

How about running a simple web server which will return any output you want in JSON format?
For example, when I need to prototype an app which will use RestKit, I create a simple ruby app using sinatra web framework (few lines of code) and start it locally, and point my RestKit based app to web app (http://www.sinatrarb.com)

Related

Swift Server Implementation

I am looking at trying to create an app the takes information provided from databases from stores and transfers this data to the app (into a spreadsheet or useable data form of some kind) and then be able to use this data within the app.
This data will also need to be able to be updated.
These are the thing I need to know
How to access these servers and retrieve the data at will
How to store this data for the app to use
If someone could please direct me to a series of tutorials about this sort of thing or provide some information that I can google and find out about that would be ideal.
Thanks
You don't need to learn tutorials if you know all about HTTP and Swift well. Well, I can provide you some fast way that you can learn
For HTTP Services :
REST Web Services => Alamofire
SOAP Web Services => Handling SOAP request using NSURLSession
If you use those, I am sure that you can do HTTP Request easily.
So, as soon as you get the response data from HTTP Request, you will have to parse it, JSON or XML.
For response parsing :
JSON : Swifty JSON : which can handle JSON more easy way
XML : SWXMLHash : which can let you handle XML easy way
So, as soon as you can parse JSON or XML that you get from HTTP request, you need somewhere to store it right? You can use SQLite Database or Realm. So, you can store it and get it back anytime you need at your local devices application memory storage.
For storing and getting result data from database:
Realm Swift : Realm ORM Database : which is easy to learn and useful and quick
These are all the Info you need. Displaying the data is based on your design theory.
For further more reading :
Alamofire Beginner Guide : AppCoda
Parsing Data and Swifty JSON : HackingWithSwift
Realm swift learning its documentation
There are many tutorials around the www.google.com all you have to do is need to ask at the search box.

Is there anyway to use an embedded JSON if request fails?

When using RestKit, can I embed in my app a service response (as a JSON file) so when the app fails (offline use) or the web service fails (server fails or just plane mode)? can I use that embedded data?
I would like to reuse the mapping and the request so it's easier to program the UI.
Can RestKit do that?
Any idea or suggestion? Reading the docs or issues I don't see anything.
You should not really do this with JSON, you should use a seed to your Core Data database.
If you aren't using Core Data or you want to use JSON then you can create a new object manager, with the same mappings, and with a base URL which is a file URL (pointing to your folder containing your JSON files on disk) to load and process them.

Communication with a web server

I am working on an application for iOS which needs to synchronize data between multiple users and one web server.
I did some research and the best solution I found for this is working with JSON.
At the moment I have a .json file on a web server and I am able to download the data to my iphone app and parse it.
I have two problems I didn't manage to understand yet:
1. How can each iphone user write back data to the json file on the server?
2. How can I take a data table and automaticly convert it to a .json file? so the .json file on the server will be updated every few minutes or so...
I'll appreciate any help with this!
You dont send JSON file as afile to the devices, you send a JSON request, I advice to do more reading about this topic, you can start from below:
Working with JSON in iOS 5 Tutorial
enter link description How to make HTTP request from iPhone and parse JSON result
How to fetch and parse JSON by using data models
and read this SO question:
iPhone/iOS JSON parsing tutorial
How to sent JSON request in the Post method in iPhone?
How to send json data in the Http request using NSURLRequest

Multipart response for web service

In one web service written in Rails, I would like to answer with a file along with additional information.
For this, I consider respond with multipart data. How can I send a multipart response with a file and json?
If there is a better way to do this, please let me know. Note that is not possible add the extra data in the file I'm sending.
Extra points for the face of the problem, that is send a file and data at same time. I already accomplished that by doing a multipart request, but if is there a better way to do this, I would like to know.
I don't know exactly what kind of front end you are using and what your browser compatibility requirements are, or you need the webservice for integration with other apps only, but assuming you are communicating with server over ajax and your app is running in modern browser (or you are allowed to use flash plugin), you can return file contents as base64 encoded string as a part of json response. So in rails controller you would have something like this:
render json: {success: true, file: {name: 'invoice.pdf', data: Base64.encode64(#file.read), extra_info: 'some info'}}
on client side you can process that json, get all the metadata you need from it and also let user save the file to their computer. For that you can use flash plugin or native api implementation
This way you can return couple files with any metadata you want with them to user and on client side user can save files if needed. Also, same webservice can be consumed by other applications as long as they can parse json.
try using gem 'curb' or 'rest-client' gem.
https://github.com/rest-client/rest-client
and
https://github.com/taf2/curb
I'm sure you have done some googling already, have you seen this already? It seems like there is a Gem for what you are trying to accomplish, the Gem however seems to be pretty old.

Posting JSON data to Web API - where do I even start?

I have zero experience with Web API and JSON. My requirements are to create a service (I'm using Web API for this) that will accept MIME Encoded JSON data. The service will take that data, insert it into a database, and return the primary key value back to the client.
My hang-up is being able to know where to even start with this. A couple of questions that I have are:
When the device sends the JSON data, how will the service "accept" it? Meaning, what's being passed to the service isn't an URL that we commonly see with MVC (/Controller/Action/ID) which then invokes the Action Method. So, how will the service know what to invoke if I'm passing raw JSON data?
How would I test this if I don't have a device that sends the JSON data yet? Would I manually invoke an AJAX call and call that particular action method and pass in the JSON data that way?
I apologize for the seemingly elementary questions.
Thanks.
When you call a WebAPI-method you still have to specify the endpoint:
Example:
PUT /api/people
MVC knows from that that it should call the put-method on the PeopleController.
You can send raw JSON-data to test it. A good tool for that is HttpFiddler: http://fiddler2.com/
As for where to start, try to create a basic WebAPI-project with visual studio, it will include some samples and you can get going from that. If you run into wall, you can come back here

Resources