API pour Android OS en Ruby on Rails
-
25-10-2019 - |
Question
Je dois fournir une api RESTful à développer en rubis sur des rails avec CRUD dispose d'une application Android. Je n'ai pas travaillé avec l'intégration OS téléphone mobile (Android / iPhone) avec RoR plus tôt. Alors, s'il vous plaît aidez-moi commencer.
Merci à l'avance.
La solution
vous pouvez envoyer les données sous forme de paquets Json au dispositif et dispositif parse les paquets de JSON et accéder aux données. vos appels vers webservice devraient être http appeler par exemple, cela est pour le client.
http: \ server \ metnod \ get_somedata name = quelque chose
et le serveur doit interroger la base de données de ce paramètre et vous envoyer le Reponse JSON. Parse JSON et obtenir vos coordonnées.
String url = "http:\\example.com\mycontroller\get_employee?id=2"
HttpPost httpPostRequest = new HttpPost(url);
StringEntity se;
se = new StringEntity(jsonObjSend.toString());
httpPostRequest.setEntity(se);
httpPostRequest.setHeader("Authorization", usercredential);
httpPostRequest.setHeader("Accept", "application/json");
httpPostRequest.setHeader("Content-type", "application/json");
long t = System.currentTimeMillis();
response = (HttpResponse) httpclient.execute(httpPostRequest);
Log.i(TAG, "HTTPResponse received in [" + (System.currentTimeMillis()-t) + "ms]");
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
Header contentEncoding = response.getFirstHeader("Content-Encoding");
if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
instream = new GZIPInputStream(instream);
}
// convert content stream to a String
String resultString= convertStreamToString(instream);
Log.v(null, "resultString "+resultString);
instream.close();
// Transform the String into a JSONObject
if(resultString!=null){
jsonObjRecv = new JSONObject(resultString);
}
// Raw DEBUG output of our received JSON object:
Log.i(TAG,"<jsonobject>\n"+jsonObjRecv.toString()+"\n</jsonobject>");
return jsonObjRecv;
Du côté du serveur, vous devriez avoir une méthode de get_employee dans un contrôleur appelé MyController. dans la méthode que vous pouvez traiter la demande comme une demande http normale et envoyer la réponse JSON par exemple
employee = Employee.find_by_id(params[:id])
@js_response = ActiveSupport::JSON.encode(employee)
respond_to do |format|
format.json { render :json => @js_response}
format.html
end
pour CRUD vous devez créer différentes méthodes avec des paramètres appropriés comme delete_employee, etc. update_employee pour créer json.org font référence / parse JSON dans Android