German API von Webprojekt realisieren

Powie

Member
Licensed User
Longtime User
Kann mir jemand eine Empfehlung aussprechen. Für eine App wollen wir eine API an unser Web-Projekt connecten. Die Fragestellung:
Womit kann man schicker arbeiten mit den Anworten als XML oder JSON?

Speziell JSON ist recht klar da wir das auch für jQuery im Webprojekt nutzen. Teilweise wären das gar identische Funktionen auf Server Seite.

Hat jemand in diese Richtung schon Erfahrungen gesammelt und kann ein paar Tips gegen wie man es richtig macht bzw. auch wie man es besser nicht machen sollte.?
 

DonManfred

Expert
Licensed User
Longtime User
Wenn Du JSON eh schon einsetzt dann solltest Du das nehmen. JSON lässt sich sehr einfach und effektiv in B4A einsetzen/benutzen.
 

Powie

Member
Licensed User
Longtime User
Ja die Sache klappt hervorragend. Sende die Anfragen mit httputils2 ab und liefere mir entsprechende Ergebnisse zurück. Funktioniert prima.

Kennt jemand eine elegante Art und Weise wie man prüft ob das System gerade "Internet" hat oder nicht?
 

DonManfred

Expert
Licensed User
Longtime User
Ich kenne so direkt keinen. Aber ich weiss auch nicht ob man das nicht mit einer Lib erreichen kann.
Ansonsten würde ich wie folgt vorgehen:

- Ein kleines PHP-Script schreiben und das auf unseren Webspace laden

ping.php
PHP:
<?
echo "OK";
?>

- in meiner App einen http-Aufruf zu dieser Seite starten mittels httputils. Im JobDone käme als Result ja ein "OK" an und Jobsuccess wäre true. Wäre JobSuccess false dann gabs probleme und man sollte Job.ErrorMessage auswerten.

B4X:
Sub JobDone(Job As HttpJob)
    ProgressDialogHide
    If Job.Success Then
        Dim res As String
        res = Job.GetString
        ToastMessageShow(Job.JobName&": " & res, True)
    Else
        ToastMessageShow("Error: " & Job.ErrorMessage, True)
    End If
    Job.Release
End Sub

Nachtrag. Erel hat eine ähnliche Methode mit "This is the most reliable way to test for a connection." betitelt. Siehe hier.

Ich habe durch das "kleine" PHP-Script die verbrauchte Bandbreite auf ein geringes verkleinert da hier "nur" ein "OK" zurückgeliefert wird.

Fazit: Mein Ansatz (für den Fall dass ich vor dieser Problematik gestanden und dann wie oben beschrieben vorgegangen wäre) ist gar nicht so schlecht gewesen ;-)
 
Last edited:

Powie

Member
Licensed User
Longtime User
Aber das ist doch eigentlich der richtigere Ansatz sogar! Das schließt mit ein das auch der Server mit der API Online ist und funktioniert. Ist so gut!
 

DonManfred

Expert
Licensed User
Longtime User
Aber das ist doch eigentlich der richtigere Ansatz sogar! Das schließt mit ein das auch der Server mit der API Online ist und funktioniert. Ist so gut!

Habe ich in meinem Fazit ja dann auch festgestellt das ich intuitiv richtig vorgegangen wäre. ;-)
 
Top