SINT Rest App Documentation



Ähnliche Dokumente
SINT Rest App Documentation

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

Professionelle Seminare im Bereich MS-Office

Kleines Handbuch zur Fotogalerie der Pixel AG

Artikel Schnittstelle über CSV

Oracle APEX Installer

Anleitung über den Umgang mit Schildern

SAMMEL DEINE IDENTITÄTEN::: NINA FRANK :: :: WINTERSEMESTER 08 09

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Der Kalender im ipad

Ihren Kundendienst effektiver machen

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

SEMINAR Modifikation für die Nutzung des Community Builders

Eine Anwendung mit InstantRails 1.7

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

TREND SEARCH VISUALISIERUNG. von Ricardo Gantschew btk Berlin Dozent / Till Nagel

e-books aus der EBL-Datenbank

Internet Explorer Version 6

KURZANLEITUNG CLOUD OBJECT STORAGE

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Arbeiten mit dem Outlook Add-In

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

INHALTSVERZEICHNIS Allgemeine Beschreibung... 3 Verwendung der Webseite... 4 Abbildungsverzeichnis... 12

Betriebshandbuch. MyInTouch Import Tool

Anwendungsbeispiele Buchhaltung

Kommunikations-Parameter

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

impact ordering Info Produktkonfigurator

Internationales Altkatholisches Laienforum

Stand: Adressnummern ändern Modulbeschreibung

Electronic Systems GmbH & Co. KG

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Installation des edu- sharing Plug- Ins für Moodle

Mobile Anwendungen Google Cloud Messaging

Dokumentation für das Spiel Pong

Erstellung botoptimierter Partnerlinks

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Ein Ausflug zu ACCESS

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Anzeige von eingescannten Rechnungen

Kommunikations-Management

Anleitung Typo3-Extension - Raumbuchungssystem

Dokumentation IBIS Monitor

Updatebeschreibung JAVA Version 3.6 und Internet Version 1.2

Einführung in das redaktionelle Arbeiten mit Typo3 Schulung am 15. und

Updatehinweise für die Version forma 5.5.5

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Menü auf zwei Module verteilt (Joomla 3.4.0)

Blumen-bienen-Bären Academy. Kurzanleitung für Google Keyword Planer + Google Trends

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Arbeiten mit UMLed und Delphi

Adami CRM - Outlook Replikation User Dokumentation

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

Anleitung zur Installation des AP-Manager-II

PICALIKE API DOKUMENTATION

Outlook und Outlook Express

CodeSaver. Vorwort. Seite 1 von 6

Einrichten eines HBCI- Zugangs mit Bank X 5.1

Neue Schriftarten installieren

Monatstreff für Menschen ab 50 Temporäre Dateien / Browserverlauf löschen / Cookies

:: Anleitung Hosting Server 1cloud.ch ::

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Kurzanleitung. Toolbox. T_xls_Import

Bedienungsanleitung für den SecureCourier

Typo3 - Schulung: Fortgeschrittene I an der Hochschule Emden/Leer

DOKUMENTATION VOGELZUCHT 2015 PLUS

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

SSO-Schnittstelle. Inhalt: Beschreibung der Single Sign-On (SSO) Schnittstelle. NetSlave GmbH Simon-Dach-Straße 12 D Berlin

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

How to do? Projekte - Zeiterfassung

Einfügen von Bildern innerhalb eines Beitrages

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Kurzanleitung MAN E-Learning (WBT)

Die Cloud der Gruppe Clubmädchen

Java Einführung Collections

TYPO3 Super Admin Handbuch

Lehrer: Einschreibemethoden

Informatik 12 Datenbanken SQL-Einführung

1 von :04

Reporting Services und SharePoint 2010 Teil 1

GITS Steckbriefe Tutorial

Tragen Sie bitte im Anmeldefeld die Daten ein, die Sie von uns erhalten haben.

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

G DATA INTERNET SECURITY FÜR ANDROID

2. Speichern und öffnen

Agentur für Werbung & Internet. Schritt für Schritt: Newsletter mit WebEdition versenden

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Dokumentation Schedulingverfahren

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

1. Einführung. 2. Archivierung alter Datensätze

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Fachhochschule Deggendorf Platzziffer:...

Transkript:

SINT Rest App Documentation Release 1.0 Florian Sachs September 04, 2015

Contents 1 Applikation 3 2 Rest Service 5 3 SOAP Service 7 4 Technologiestack 9 5 Deployment 11 6 Aufgabe 1: Google Webservice Nutzen 13 7 Aufgabe 2: REST Service Entwickeln 15 8 Aufgabe 3: Webservice nutzen 17 9 Contents 19 9.1 Vewendung der Google API....................................... 19 9.2 Application................................................ 19 9.3 REST API aufrufe............................................ 20 9.4 Konfiguration............................................... 21 10 Indices and tables 23 Python Module Index 25 i

ii

SINT Rest App Documentation, Release 1.0 Download der in der LV präsentierten Präsentation Contents 1

SINT Rest App Documentation, Release 1.0 2 Contents

CHAPTER 1 Applikation Applikation App Dokumentation Source 3

SINT Rest App Documentation, Release 1.0 4 Chapter 1. Applikation

CHAPTER 2 Rest Service REST Service REST Dokumentation Source 5

SINT Rest App Documentation, Release 1.0 6 Chapter 2. Rest Service

CHAPTER 3 SOAP Service SOAP Service URL SOAP Dokumentation 7

SINT Rest App Documentation, Release 1.0 8 Chapter 3. SOAP Service

CHAPTER 4 Technologiestack Frontend und Webservice sind in Python geschrieben, das Webservice in Java Python 2.7 Flask - Webframework SQLALchemy - Persistenz Layer Postgresql - Relationale Datenbank Bootstrap - Front End Sphinx - Documentation Generator WTForms - HTML Form Helper ReadTheDocs - Documentation Hosting Requests - HTTP for Humans Flask Restless 9

SINT Rest App Documentation, Release 1.0 10 Chapter 4. Technologiestack

CHAPTER 5 Deployment Applikation http://sintapp.herokuapp.com/leihen/ Heroku, AWS, EU Region Python REST Service http://sintrest-sumpfgottheit.rhcloud.com OpenShift - Red Hats Cloud Angebot, AWS, US Region Python Webservice http://lnurn3.schlof.net:8080/soap_currencyconverter/wsdl/currencyconverter.wsdl Netcup Serverhousing, Nürnberg, DE Java Redis Cache um nicht mehr als 2.500 Abfragen auf Googleapi zu machen RedisLabs, AWS, US Region 11

SINT Rest App Documentation, Release 1.0 12 Chapter 5. Deployment

CHAPTER 6 Aufgabe 1: Google Webservice Nutzen Wählt man unter http://sintapp.herokuapp.com/kunden/ einen Kunden aus und klickt auf Neue Leihe werden die Verleihstationen der Distanz von der Kundenadresse bis zur Station sortiert angeboten. Die Google API wird mittels Vewendung der Google API angesprochen. 13

SINT Rest App Documentation, Release 1.0 14 Chapter 6. Aufgabe 1: Google Webservice Nutzen

CHAPTER 7 Aufgabe 2: REST Service Entwickeln Die Kommunikation zwischen Applikation und Backend erfolg ausschliesslich über REST calls. In Application können die einzelnen Funktionen im Source betrachtet werden. Die REST Api selbst ist unter http://sintrest.readthedocs.org zu finden. In REST API aufrufe werden die Wrapperfunktionen für den Aufruf dargestellt. 15

SINT Rest App Documentation, Release 1.0 16 Chapter 7. Aufgabe 2: REST Service Entwickeln

CHAPTER 8 Aufgabe 3: Webservice nutzen Das REST Service verwendet seinerseits das SOAP Service, um abhängig von dem Land, indem der Kunde wohnt die Kosten für die Leihe in die entsprechende Währung umzurechnen. Genaueres ist in http://sintrest.readthedocs.org/soapclient.html dokumentiert. Wie man sehen kann ist Herr Zurbriggen Schweizer und die entsprechenden Kosten werden in Schweizer Franken angezeigt, während Herr Nagy seine Forint bekommt. 17

SINT Rest App Documentation, Release 1.0 18 Chapter 8. Aufgabe 3: Webservice nutzen

CHAPTER 9 Contents 9.1 Vewendung der Google API Verwendet die Google API um die Distanz und die Fahrzeit zwischen zwei Adressen herauszufinden. Die Google API wird als einfaches REST Webservice mit JSON verwendet. Die Parametrisierung erfolgt vollständig über URL-Parameter. Die Adresse selbst wird als Property von models.kunde und models.station aus den vorhandenen Daten erstellt. Das Umrechnen der Adresse int die Koordination erfolgt transparent durch das Webservice. wsgi.googleapi.get_distance(von, nach) Liefert Distanz und Fahrzeit zwischen zwei Adressen zurück. Da bei der Google Api für die gratis Variante nicht mehr als 2.500 Anfragen alle 24 Stunden gestellt werden dürfen, werden die Ergebnisse der Anfragen in einer Redis DB zwischen gespeichert und Google wird nur dann gefragt, wenn die RedisDB für diese Adresspaar keine Einträge hat. Als RedisDB wurde das freie (25MB, keine Datenpersistenz) Cloudprodukt von www.redislabs.com gewählt. Die RedisDB steht dabei in der AWS-Zone US Eastern. Parameters von Adressstring für den Ausgangspunkt nach Adressstring für das Ziel Returns tuple: dict von get_distance_from_google() ; redis-cache-hit: true false wsgi.googleapi.get_distance_from_google(von, nach) Liefert die Distanz und die Dauer fuer die Fahrt zwischen 2 Adressen zurueck. Verwendet dazu die Google Distance Matrix aus https://developers.google.com/maps/documentation/distancematrix/ Parameters von Adressstring für den Ausgangspunkt nach Adressstring für das Ziel Returns dict { distance : { text : distance_text, value : int(distance_value)}, duration : { text : duration_text, value : int(duration_value)}} 9.2 Application wsgi.flaskapp.cars_list() List all Cars 19

SINT Rest App Documentation, Release 1.0 wsgi.flaskapp.create_db() Call models.initialize_database() and recreate the database wsgi.flaskapp.kunden_delete(kunde_id) Löschen eines Kunden - aber nur wenn er keine offenen Leihen gibt. wsgi.flaskapp.kunden_edit(kunde_id=none) Legt entweder einen neuen Kunden an oder editiert einen bestehenden. Wie immer gibt es das Problem, das create und update sehr ähnlich sind - hier habe ich beides auf einmale implementiert. Mgl kann mit Classbased Views strukturierter vorgegangen werden wsgi.flaskapp.kunden_list() List all Kunden wsgi.flaskapp.leihe_neu1(kunde_id) Klickt man bei der Kunden-Detail View auf Neue Leihe werden in dieser View anhand der Adresse des Kunden die Distanzen zu unseren Verleihstationen berechnet und als Tabelle angezeigt. wsgi.flaskapp.leihen_edit(leihe_id=none) Create und update for Leihen. Wertet auf die URL-Query Parameter kunde_id und station_id aus, die die entsprechenden Felder voreinstellen. 9.3 REST API aufrufe Das REST Modul verwendet die Requests Library, um mit dem Verleihnix REST Service zu kommunizieren. Die bereitgestellen Funktionen sind minimale Wrapper um die entsprechenden HTTP-Calls. Auf REST-Service Seite wird die von Flask Restless <https://flask-restless.readthedocs.org/en/latest/> generierte API angesprochen. Wenn ein Requests fehlschlägt wird eine Exception geraised. wsgi.rest.rest_delete_id(s, key) Löscht ein Element Parameters s tablename des Models, das geholt werden soll key id des Models wsgi.rest.rest_get_all(s) Liste mit allen Objekten des Models. Parameters s tablename des Models, das geholt werden soll Returns Liste mit allen Objekten für s wsgi.rest.rest_get_id(s, key) Return ein einzelnes Element mit der gegeben id Parameters s tablename des Models, das geholt werden soll key id des Models Returns dict - Modell wsgi.rest.rest_post(s, data) Erstellt ein neues Modell. 20 Chapter 9. Contents

SINT Rest App Documentation, Release 1.0 Parameters s tablename des Models, das geholt werden soll data dict - key und value entpsrechen den Attributen des Models wsgi.rest.rest_put(s, key, data) Updated ein Modell Parameters s tablename des Models, das geholt werden soll key id des Models data dict - key und value entsprechend den Attributen des Modells 9.4 Konfiguration Ein from config import * werden die korrekte Konfiguration importiert. Da diese sinnvollerweise - es befinden sich secrets drin - in git gespeichert wird, wird sie in../../../data/config/rhc-sint/ als config_rhc.py und config_local.py abgelegt. Diese Verzeichnisstruktur kann 1:1 in OpenShift verwendet werden, da dieses data/ Verzeichnis bei einem Neustart der App vorhanden bleibt. Anhand der Umgebungsvariable OPENSHIFT_APP_UUID wird entschieden, welche der Configs geladen werden soll. 9.4. Konfiguration 21

SINT Rest App Documentation, Release 1.0 22 Chapter 9. Contents

CHAPTER 10 Indices and tables genindex modindex search 23

SINT Rest App Documentation, Release 1.0 24 Chapter 10. Indices and tables

Python Module Index w wsgi.config, 21 wsgi.flaskapp, 19 wsgi.googleapi, 19 wsgi.rest, 20 25

SINT Rest App Documentation, Release 1.0 26 Python Module Index

Index C cars_list() (in module wsgi.flaskapp), 19 create_db() (in module wsgi.flaskapp), 19 G get_distance() (in module wsgi.googleapi), 19 get_distance_from_google() (in module wsgi.googleapi), 19 K kunden_delete() (in module wsgi.flaskapp), 20 kunden_edit() (in module wsgi.flaskapp), 20 kunden_list() (in module wsgi.flaskapp), 20 L leihe_neu1() (in module wsgi.flaskapp), 20 leihen_edit() (in module wsgi.flaskapp), 20 R rest_delete_id() (in module wsgi.rest), 20 rest_get_all() (in module wsgi.rest), 20 rest_get_id() (in module wsgi.rest), 20 rest_post() (in module wsgi.rest), 20 rest_put() (in module wsgi.rest), 21 W wsgi.config (module), 21 wsgi.flaskapp (module), 19 wsgi.googleapi (module), 19 wsgi.rest (module), 20 27