API für Android OS in Ruby on Rails
-
25-10-2019 - |
Frage
Ich muss eine erholsame API bereitstellen, die in Ruby on Rails mit CRUD -Funktionen für eine Android -App entwickelt werden soll. Ich habe nicht früher mit der Integration von Handy -Betriebssystemen (Android/iPhone) mit ROR gearbeitet. Bitte helfen Sie mir, loszulegen.
Danke im Voraus.
Lösung
Sie können die Daten als JSON -Pakete an das Gerät senden und im Gerät die JSON -Pakete analysieren und auf die Daten zugreifen. Ihre Anrufe bei WebService sollten ein HTTP -Anruf sein, z. B. für den Client.
http: server metnod get_somedata? name = etwas
und der Server sollte die Datenbank für diesen Parameter abfragen und Ihnen die Antwort als JSON senden. Analysieren Sie JSON und erhalten Sie Ihre Details.
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;
Auf der Serverseite sollten Sie über eine Get_EMPOTEE -Methode in einem Controller namens MyController verfügen. In der Methode können Sie die Anforderung als normale HTTP -Anfrage bearbeiten und die Antwort als JSON -EG senden
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
Für CRUD müssen Sie unterschiedliche Methoden mit geeigneten Parametern wie Delete_aMployee, update_aMployee usw. erstellen