Entwickeln von Websites mit derselben API wie mobile

8

Ich bin nur mit nativer mobiler Entwicklung vertraut, nicht mit Web-Entwicklung, also verzeih mir meine Naivität.

Eine API für eine mobile App würde normalerweise die Anforderung von POST- oder GET-Daten von einer API umfassen. Die Daten würden als JSON zurückgegeben werden. Um dieses Beispiel zu veranschaulichen, stellen Sie sich vor, dass es sich bei der API um eine einfache, von Sinatra / Ruby betriebene API handelt, die sowohl vom Mobiltelefon als auch von der Website genutzt wird.

Welche Optionen gibt es für die Entwicklung von Websites, die dasselbe Paradigma verwenden - wenn das Web-Frontend seine Daten von den gleichen JSON-Endpunkten erhält wie die mobile App?

Ich habe die Namen AngularJS und Backbone.js gehört, obwohl Sinatra vielleicht genug ist? Ich würde es vorziehen, PHP nicht zu benutzen.

Ich würde eine leichte Lösung bevorzugen. Wenn möglich, möchte ich, dass es Seiten aktualisieren kann, wenn sich das Modell ändert, obwohl ich vermute, dass dies von Backend-API-Änderungen abhängen würde.

    
cannyboy 13.04.2013, 10:06
quelle

8 Antworten

5

Sie werden den größten Knall für Ihr Geld bekommen, wenn Ihre Service- und UI-Ebenen vollständig getrennt sind. Und damit meine ich, dass Sie Ihre Dienste ohne eine bestimmte Benutzeroberfläche entwerfen müssen, da Sie dadurch die maximale Wiederverwendbarkeit erhalten. Ich würde eine REST-konforme, webbasierte Service-Implementierung empfehlen, da sie ein hohes Maß an Flexibilität für die Integration der Benutzeroberfläche bietet. Heutzutage gibt es buchstäblich Legionen von Bibliotheken, die Daten aus solchen Diensten konsumieren können.

Ich bin kein Ruby-Entwickler, aber hier ist eine simple Web-Service-Implementierung in Sinatra:

%Vor%

Zuordnung: Lightweight Webservices mit Sinatra und RESTClient

Beachten Sie, dass die tatsächliche Sprache / Plattform, die für die Dienstimplementierung verwendet wird, irrelevant ist, solange sie RESTful ist, und gibt Daten zurück, die von Clients problemlos verwendet werden können. Sobald Sie diese Einrichtung vorgenommen haben, wird es beim Entwerfen einer Webanwendung im Vergleich zu einer mobilen App eine Frage der Auswahl einer geeigneten Integrationsbibliothek:

  • HTML (5) / CSS / Javascript . Eine der robusteren Optionen, mit der sowohl mobile als auch Web-Anwendungen implementiert werden können. Die drei erwähnten Technologien bilden den Kern der neuen Web 2.0-Architektur und verschiedene Frameworks existieren: Angular.js , Ext.js , Backbone.js , Knockout.js und sogar jQuery Mobile oder Bootstrap . Dies ist derzeit die gängigste Methode zur Integration von Web-Service-APIs in Webanwendungen. Beachten Sie, dass Sie in einigen Fällen sogar nur eine Website erstellen und diese dann als Grundlage für Ihre mobile App verwenden können (z. B. über ein iOS-UIWebView / Android-WebView).
  • Middle Tier Proxy : Sie würden diese Route verwenden, wenn Sie Ajax im Browser deaktivieren möchten (aus Sicherheitsgründen oder zur Vermeidung von XSS-Problemen). Der Proxy könnte in jeder Sprache (Java, PHP, Ruby, Perl) geschrieben werden und wäre verantwortlich für den Konsum Ihrer Web-Services und das Erzeugen von dynamischem HTML für Ihre UI.

Als reales Beispiel hat mein aktuelles Projekt eine große Anzahl von RESTFul-Webdiensten, die mit Java EE / JAX-RS erstellt wurden, die auf geclusterten JBoss-Servern läuft. Die Services geben standardmäßig JSON zurück, können jedoch auch XML generieren und werden über Folgendes aufgerufen:

  • Verschiedene interne und externe Webanwendungen, die mit Ext.js
  • erstellt wurden
  • iOS-Anwendungen, die eine Kombination aus AFNetworking / RestKit / NSURLConnection
  • verwenden
  • Android-Anwendungen mit Jersey REST-Client

Genau dieselben Dienste werden von mehreren verschiedenen Plattformen / Benutzeroberflächen verwendet, ohne dass Änderungen auf der Dienstseite erforderlich sind. Welches ist, was ich glaube, du versuchst zu erreichen.

    
Perception 21.04.2013 09:10
quelle
3

Eine Option, da Sie mit der nativen Entwicklung vertraut sind Ich gehe davon aus, dass Sie mit Java gut zurecht kommen, dann würde ich vorschlagen, dass Sie DropWizard verwenden für Ihre API-Entwicklung, die den JSON über einen REST-fähigen Endpunkt bereitstellt.

Die Webite ist genau der gleiche Prozess wie in einer mobilen App, außer dass Sie in Web-Dev-Sprachen programmieren.

Senden Sie eine Anfrage an die API. Erhalte eine JSON-Antwort. Parsen Sie das JSON zu einem Objekt. Erstellen Sie eine UI-Repräsentation des Objekts mit HTML, CSS usw. Zeigen Sie die UI-Darstellung an.

Alles, was Sie tun müssen, ist, welche Sprache Sie verwenden möchten, um das POST / GET zu erstellen - PHP, Ajax oder eine andere Sprache Ihrer Wahl.

    
triggs 13.04.2013 10:39
quelle
2

Nach meiner Erfahrung versuche ich, bei der Entwicklung einer Multi-Plattform-App meinen Code und meine Algorithmen so gut wie möglich wiederzugeben. Also, wenn ich eine API (mit PHP und MySQL zum Beispiel) vorbereite, benutze ich das gleiche Datenwiederherstellungsformat für alle Plattformen. Sowohl mobile Projekte als auch Webprojekte können Daten über JSON oder XML lesen und senden, also denke ich, dass damit nichts zu tun hat.

Obwohl Sie alle Datenbankverbindungen in Ihrer API zentralisieren, reduzieren Sie die Anzahl der Verbindungen (und Fehler) in hohem Maße.

Sie können ein laufendes Beispiel auf Foursquare sehen.

    
Jorge Ramos 13.04.2013 10:28
quelle
2

Nach meinem Verständnis suchen Sie nach einem leichtgewichtigen Webentwicklungsframework, das einfach zu erlernen ist und dynamische Websites erstellt.

Basierend auf Ihrer Anforderung sollte das Web-Front-End in der Lage sein, eine HTTP-GET / POST-Anforderung zum Abrufen von JSON-Daten von einer API zu stellen. Die folgenden Optionen sind die besten für Sie:

  1. HTML + AJAX (für sehr einfache dynamische Websites)
  2. PHP + AJAX (für kompliziertere Websites)

Die GET / POST-Anforderung wird als ein AJAX-Aufruf unter Verwendung einer JS-Bibliothek, z.B. jQuery. Darüber hinaus bietet jQuery Funktionen zum Analysieren der JSON-Antwort.

Also im Wesentlichen müssen Sie PHP lernen & amp; jQuery beide sind sehr beliebt und einfach zu bedienen und haben eine große Community-Unterstützung hinter ihnen.

    
appsroxcom 15.04.2013 19:49
quelle
2

AngularJS funktioniert wirklich gut für Einzelseiten-Apps, die Web-Services nutzen. Es hat eine etwas steilere Lernkurve als jQuery ajax call (imo), je nach Ihren Bedürfnissen kann es also sinnvoller sein, Ihre App mit jQuery zu erstellen.

Andere JS MVC-Frameworks (knockout, ember.js) haben möglicherweise ähnliche Funktionen bezüglich des Abrufens von Daten aus JSON-Quellen, aber ich bin nicht wirklich mit ihnen vertraut, also können Sie einen Blick darauf werfen und entscheiden.

Andernfalls erstellen Sie einfach eine HTML-Startseite und starten die Ajax-Aufrufe für Dienste, sobald sie geladen sind.

    
Evgeni 16.04.2013 13:01
quelle
2

In meinem "früheren Leben" war ich ein Webentwickler (seit 10 Jahren), jetzt bin ich Vollzeit-Mobilentwickler (seit 2,5 Jahren) und ich habe sowohl Android- als auch iOS-Apps mit SOAP erstellt oder REST-APIs.

Im Web arbeite ich gerne mit JQuery und JQuery-UI. JQuery bietet wirklich einfache und einfache Möglichkeiten, JSON-Daten aus SOAP- oder REST-Webdiensten zu erhalten, um Grids, Formulare, Steuerelemente, die den Fortschritt anzeigen, während sie auf eine Antwort warten, usw. aufzufüllen. Auschecken: Ссылка

Ich arbeite gerade an einer iOS App mit REST-Operationen und JSON-Daten. Das Web Dev Team baut eine Backend-Website mit Backbone.js und JSON-REST-Operationen, um das Front-End mit dem gleichen Backend zu verbinden von iOS über JSON-REST. Ich weiß, dass sie die Syntaxanalyse von backbone.js (um JSON zu lesen), collection.toJSON () (um in JSON zu konvertieren) und Model-Sync-Methoden verwenden (mehr unter Ссылка ) viel.

Also ... stimme ich den anderen zu, solange Sie JSON von REST beziehen können, können Sie die gleichen Methoden auf Ihren Web- und Mobile-Apps verwenden.

Und hier ist ein schöner Blog-Artikel über den richtigen REST-API-Server: Ссылка .

Viel Glück!

    
Oscar S. 16.04.2013 18:31
quelle
0

Es gibt zwei Hauptansätze für die Entwicklung von Webanwendungen durch die Verwendung von Webdiensten (JSON-Inhalt)

  • Reiner HTML-basierter Ansatz : In diesem Modell benötigen Sie kein serverseitiges Skript wie PHP, JSP und ASP.Net usw. Ihr JSON-basierter REST-Service wird von JavaScript konsumiert und die Daten in HTML-Komponenten rendern. Das Programmiermodell ist jetzt beliebter und die Anwendung wird reibungslos funktionieren und sich wie eine Desktop-Anwendung verhalten. Es gibt viele Frameworks, die Ihnen helfen, dieses Ziel zu erreichen. Sie sind bereits in den vorherigen Antworten wie Angular.js, Ext.js, Backbone.js, Knockout.js, DoJo, Bootstrap erwähnt. Sogar ein Teil dieses Frameworks unterstützt die Datenbindung mit UI-Komponenten und serverseitigen JSON-basierten Restdiensten. Sie benötigen keine Codierung, um den REST-Service zu nutzen und UI-Komponenten zu rendern. Dies geschieht automatisch über dieses Client-Framework. Beispiel DoJo

  • HTML und serverseitiges Skript : Bei diesem Ansatz müssen Sie eine beliebige serverseitige Skriptsprache wie PHP, JSP, JSF und Framework wie RoR, Django usw. verwenden, um dieses Ziel zu erreichen. Da es eine andere Skriptsprache und ein anderes Framework beinhaltet, hat es eine Lernkurve im Vergleich zu HTML und JS basierend.

Zusammenfassend würde ich empfehlen, mit dem ersten Ansatz zu beginnen.

    
Shamim Ahmmed 22.04.2013 08:37
quelle
0

Da Sie Ihre APIs bereits auf Ruby aufbauen, sollten Sie Ruby on Rails in Betracht ziehen. Ich bin ein C # / iOS Entwickler und habe bis vor kurzem noch nie in Ruby on Rails geschaut. Es ist eine großartige Sprache mit großer Leichtigkeit und Flexibilität. Weitere Informationen finden Sie in diesem Link Ссылка .

Es gibt Ihnen eine größere Flexibilität bei der Implementierung von jQuery und anderen Javascript-basierten Bibliotheken.

Sie können mit Sqlite-, MySql- und PostgreSQL-Datenbanken arbeiten.

    
Harish 22.04.2013 10:56
quelle

Tags und Links