From a63f68f5b2ff28cd87eae2d731cd86fef872b63f Mon Sep 17 00:00:00 2001 From: Sebastian Lobinger <sebastian.lobinger@fu-berlin.de> Date: Wed, 7 Jun 2017 13:31:14 +0200 Subject: [PATCH] update README.md fix issue #16 --- README.md | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a7a8dc..ec6eff0 100644 --- a/README.md +++ b/README.md @@ -196,4 +196,81 @@ aus der Session der Anfrage hinzu zu fügen. #### Methoden -#### Eigenschaften \ No newline at end of file +##### Konstruktor + +###### Minimalistisch: + +```python +proxy = SAMSProxy(proxySpec = { + 'in': '/testapi/ + 'out': 'https://my.testapi.host/api/' +}) +``` + +Jeder Proxy hat in seiner proxySpec einen 'in' und einen 'out' defineirt. +Der Proxy stellt der SAMSApp eine URL Regel wie unter 'in' zur verfügung, die +dann im Hub noch um ein App-Präfix ergänz wird, falls essich nicht um die +Main-App handelt. +Alle Anfragen die an 'in' gehen werden an 'out' weiter geleitet, wobei der +URL-Teil bis zum ende von 'in' durch 'out' ersetzt wird. +Aus einer Anfrage an '/testapi/user' wird also bei obigem Beispiel +'https://my.testapi.host/api/user'. +Die Ursprüngliche Anfrage bleibt bei dieser Minimalkonfiguration unverändert. + +###### Definieren eines Token + +```python +proxy = SAMSProxy(proxySpec = { + 'in': '/testapi/ + 'out': 'https://my.testapi.host/api/' + 'token': {'name': 'Api-Token', 'value': 'C001C01A', 'param-type' : 'header'} +}) +``` + +Wird ein Token, wie Oben angegeben, definiert, wird der Header der Nachricht um +die entsprehende Angabe ergänz. Sollte im aufruf ebenfalls der gleiche Name für +einen Header verwendet worden sein, dann gewinnt der Proxy. +Alle unterstützten 'param-type' Werte: + +- header (für Header) +- url (für URL-Parameter) +- body (für JSON oder form Parameter je nach Anfrage Content-Type) + +###### Session Daten Weitergeben + +```python +proxy = SAMSProxy(proxySpec = { + 'in': '/testapi/ + 'out': 'https://my.testapi.host/api/' + 'session-passthrough': { + 'default':{ + 'user': {'name': 'u', 'param-type': 'body'}, + 'group': {'name': 'g', 'param-type': 'url'} +}) +``` + +Es ist möglich Parameter aus der Session an 'out' weiter zu reichen. +Hierbei muss zwingend ein default Dictionary existieren, auch wenn dieses lehr ist. +für die anderen HTTP-Verben kann dann zusätzlich ein dictionary existieren, +falls sich die erforderlichen Parameter vom default unterscheiden. +Es wird immer das zur HTTP Methode passende Dictionary als Grundlage verwendet. +Das Default wird nur verwendet, wenn für die HTTP Methode kein Dictionary existiert. + +Das Defaut / Methoden Dictionary gibt im key immer den weiter zu leitenden +Session-Patrameter an. Die Werte sind selbst wieder dictionaries ähnlich dem bei +'token'. Allerdings wird hier kein 'value' benötigt, dieses wird aus der Session +gelesen. + +Die HTTP Methode muss wie bei HTTP Methoden üblich in Blockschrift angegeben sein. + +##### proxy + +Methode zum registrieren als view in der flask app. Diese Methode erfüllt dann +die eigendliche Proxy aufgabe, wenn eine Anfrage durch sie behandelt wird. + +#### Eigenschaften + +##### urlRule + +Flask kompatible urlRule für den Proxy. Zur verwendung mit +```flask_app.register_url``` \ No newline at end of file -- GitLab