# HG changeset patch # User Sandro Knauß # Date 1323211998 -3600 # Node ID f2f247a5b6c9c2532c7ce31f82383d21ef982aff # Parent e7b44716a564e45aee561856006b02ccf438d4b1 update Documentation diff -r e7b44716a564 -r f2f247a5b6c9 createdoc.py --- a/createdoc.py Tue Dec 06 19:46:00 2011 +0100 +++ b/createdoc.py Tue Dec 06 23:53:18 2011 +0100 @@ -7,10 +7,10 @@ import re import inspect -from iro.user import User +from iro.user import User as Current +from iro.newuser import User as New -user_methods = dict(inspect.getmembers(User(None,None))) class Link(): def __init__(self,name,title): @@ -47,7 +47,7 @@ if kw: ret[kw.name]=kw li.append(kw) - l=re.match(r"^(?P[a-zA-Z0-9-_.]*)\[(?P[a-zA-Z0-9-_]*)\]:(?P.*)$",line) + l=re.match(r"^(?P[a-zA-Z0-9-_.]*)\[(?P[a-zA-Z0-9-_|]*)\]:(?P.*)$",line) kw=Keyword(name=l.group("name"),typ=l.group("typ"),description=l.group("d")) else: kw.description+="\n"+line.strip() @@ -87,9 +87,11 @@ class Method(Link): - def __init__(self,name,title): + def __init__(self,name,methods): + title=name[0].upper()+name[1:] Link.__init__(self,name,title) - m=user_methods[name] + m=methods[name] + self.func_line=inspect.formatargspec(*inspect.getargspec(m)) self.description = m.__doc__.split("\n")[0] a=inspect.getargspec(m) self.args=[Arg(a,m) for a in a.args if a is not "self"] @@ -103,24 +105,40 @@ Site("impressum.html","Impressum"), ] - methods=[ - Method("startSMS","StartSMS"), - Method("startFAX","StartFAX"), - Method("startMail","StartMail"), + current_methods = dict(inspect.getmembers(Current(None,None))) + current=[ + Method("startSMS",current_methods), + Method("startFAX",current_methods), + Method("startMail",current_methods), + + Method("status",current_methods), + Method("stop",current_methods), - Method("status","Status"), - Method("stop","Stop"), + Method("getProvider",current_methods), + Method("getDefaultProvider",current_methods), + ] + + new_methods = dict(inspect.getmembers(New())) + newm=[ + Method("sms",new_methods), + Method("fax",new_methods), + Method("mail",new_methods), - Method("getProvider","GetProvider"), - Method("getDefaultProvider","GetDefaultProvider"), + Method("status",new_methods), + Method("stop",new_methods), + + Method("routes",new_methods), + Method("defaultRoute",new_methods), ] + + for site in sites: print("generiere %s" % site.name) tmpl = loader.load(site.name) def a(s): if s == site: return {"class":"menu active"} - stream = tmpl.generate(sites=sites,active=a,methods=methods) + stream = tmpl.generate(sites=sites,active=a,current=current,new=newm) with open('doc/'+site.name, "w") as g: g.write(stream.render('html', doctype='html')) diff -r e7b44716a564 -r f2f247a5b6c9 doc/current.html --- a/doc/current.html Tue Dec 06 19:46:00 2011 +0100 +++ b/doc/current.html Tue Dec 06 23:53:18 2011 +0100 @@ -68,7 +68,7 @@

Methoden

StartSMS

-

startSMS

+

startSMS(self, message, recipients, provider='default')

Versendet eine SMS.

Parameter
@@ -91,8 +91,7 @@ - +
provider string Provider über den geschickt werden soll; -default - verschickt über den Standardprovider Provider über den geschickt werden soll
@@ -115,7 +114,7 @@

StartFAX

-

startFAX

+

startFAX(self, subject, fax, recipients, provider='default')

Versendet ein FAX.

Parameter
@@ -142,8 +141,7 @@ - +
provider string Provider über den geschickt werden soll; -default - verschickt über den Standardprovider Provider über den geschickt werden soll
@@ -166,7 +164,7 @@

StartMail

-

startMail

+

startMail(self, subject, body, recipients, frm, provider='default')

Versendet eine Email.

Parameter
@@ -197,8 +195,7 @@ - +
provider string Provider über den geschickt werden soll; -default - verschickt über den Standardprovider Provider über den geschickt werden soll
@@ -221,7 +218,7 @@

Status

-

status

+

status(self, id=None, detailed=False)

Gibt den aktuellen Status eines Auftrages zurück.

Parameter
@@ -236,13 +233,11 @@ - + - +
id hash Eine Auftragsnummer -default - alle Aufträge ausgeben Eine Auftragsnummer
detailed boolean Details ausgeben -default - False Details ausgeben
@@ -273,7 +268,7 @@

Stop

-

stop

+

stop(self, id)

Stoppt den angegeben Auftrag.

Parameter
@@ -294,7 +289,7 @@

GetProvider

-

getProvider

+

getProvider(self, typ)

Gibt eine Liste aller verfügbaren Provider zurück.

Parameter
@@ -333,7 +328,7 @@

GetDefaultProvider

-

getDefaultProvider

+

getDefaultProvider(self, typ)

Gibt den Standardprovider zurück.

Parameter
diff -r e7b44716a564 -r f2f247a5b6c9 doc/new.html --- a/doc/new.html Tue Dec 06 19:46:00 2011 +0100 +++ b/doc/new.html Tue Dec 06 23:53:18 2011 +0100 @@ -36,6 +36,7 @@ Interfaces
  1. 2.1 XML-RPC
  2. +
  3. 2.1 SOAP
  4. 2.2 XML
  5. 2.3 JSON
  6. 2.4 JSONP
  7. @@ -43,49 +44,44 @@
  • 3. - Methoden -
      -
    1. 3.1 Route
    2. -
    3. 3.2 Dist
    4. -
    5. 3.3 Geocode
    6. -
    7. 3.4 SMS
    8. -
    9. 3.5 Bank
    10. -
    11. 3.6 Boxcar
    12. -
    13. 3.7 Postcode-Match
    14. -
    15. 3.8 Postcode-Shape
    16. -
    + Methoden +
      +
    1. 3.1 Sms
    2. 3.2 Fax
    3. 3.3 Mail
    4. 3.4 Status
    5. 3.5 Stop
    6. 3.6 Routes
    7. 3.7 DefaultRoute
    8. +
  • -
  • 4. Fehlermeldungen
  • Einführung

    - Die Mesngr API enthält viele Funktionen, die von Fahrradkurierdiensten benötigt werden. + Die Iro API enthält Funktion, die für den Massenversand nützlich sind.

    Interfaces

    - Die Mesngr API stellt verschiedene Interfaces bereit, die unterschiedlich angesprochen werden, aber das selbe tun. + Die Iro API wird über verschiedene Interfaces bereit gestellt, die unterschiedlich angesprochen werden, aber das selbe tun.

    XML-RPC

    - Interface-URI: http://api.mesngr.de/xmlrpc + Interface-URI: http://localhost:8000/xmlrpc

    Die aufgerufene Methode wird dabei im <methodName /> übergeben.

    +
    +
    +

    SOAP

    - Das XML-RPC Interface nimmt die Parameter der aufgerufenen Methode als <struct /> inerhalb des ersten <param /> entgegen, alle weiteren <param />s werden ignoriert. + Interface-URI: http://localhost:8000/soap

    - Zeichen außerhalb des ASCII-Sets sind als HTML Entities zu übergeben. + Die aufgerufene Methode wird dabei im <methodName /> übergeben.

    XML

    - Interface-URI: http://api.mesngr.de/xml/<methode> + Interface-URI: http://localhost:8000/xml/<methode>

    Die aufgerufene Methode wird im Pfad der Interface-URI übergeben. @@ -100,7 +96,7 @@

    JSON

    - Interface-URI: http://api.mesngr.de/json/<methode> + Interface-URI: http://localhost:8000/json/<methode>

    Die aufgerufene Methode wird im Pfad der Interface-URI übergeben. @@ -112,10 +108,10 @@ Die Ausgabe erfolgt als JSON-Objekt.

    -
    +

    JSONP

    - Interface-URI: http://api.mesngr.de/jsonp/<methode>?callback=<callback> + Interface-URI: http://localhost:8000/jsonp/<methode>?callback=<callback>

    Die aufgerufene Methode wird im Pfad der Interface-URI übergeben. @@ -130,899 +126,340 @@ Die Ausgabe erfolgt als Javascript-Funktionsaufruf mit einem JSON-Objekt als Parameter.

    -
    -

    PHP

    -

    - Interface-URI: http://api.mesngr.de/php/<methode> -

    -

    - Die aufgerufene Methode wird im Pfad der Interface-URI übergeben. -

    -

    - Parameter können via HTTP per GET oder POST im Format application/x-www-form-urlencoded übergeben werden. -

    -

    - Die Ausgabe erfolgt als serialisiertes PHP-Objekt. -

    +
    +

    Methoden

    +
    +

    Sms

    +

    sms(self, apikey, message, recipients, route='default')

    +

    Versendet eine SMS.

    +
    Parameter
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    apikeystring Der API Key
    messagestring Nachricht
    recipientslist eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
    routestring|list Route über den geschickt werden soll, +oder eine Liste von Routen, um Fallbacks anzugeben
    +
    Ausgabe
    + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    idhash Die ID des Auftrages
    +
    +

    Fax

    +

    fax(self, apikey, subject, fax, recipients, route='default')

    +

    Versendet ein FAX.

    +
    Parameter
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    apikeystring Der API Key
    subjectstring Der Betreff
    faxstring Das PDF base64 kodiert
    recipientslist Eine Liste von Emfänger-Nummern (gemäß ITU-T E.123)
    routestring|list Route über den geschickt werden soll, +oder eine Liste von Routen, um Fallbacks anzugeben
    +
    Ausgabe
    + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    idhash Die ID des Auftrages
    +
    +

    Mail

    +

    mail(self, apikey, subject, body, recipients, frm, route='default')

    +

    Versendet eine Email.

    +
    Parameter
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    apikeystring Der API Key
    subjectstring Der Betreff
    bodystring Der Email Body
    recipientslist Eine Liste von Emailadressen
    frmstring Die Absender Emailadresse
    routestring|list Route über den geschickt werden soll, +oder eine Liste von Routen, um Fallbacks anzugeben
    +
    Ausgabe
    + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    idhash Die ID des Auftrages
    +
    +

    Status

    +

    status(self, apikey, id=None, detailed=False)

    +

    Gibt den aktuellen Status eines Auftrages zurück.

    +
    Parameter
    + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    apikeystring Der API Key
    idhash Eine Auftragsnummer
    detailedboolean Details ausgeben
    +
    Ausgabe
    + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    jobslist Eine Liste der Aufträge.
    job.namestring Angebener Name
    job.statusstring Status des Auftrages
    +
    +

    Stop

    +

    stop(self, apikey, id)

    +

    Stoppt den angegeben Auftrag.

    +
    Parameter
    + + + + + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    apikeystring Der API Key
    idhash Eine Auftragsnummer
    +
    +

    Routes

    +

    routes(self, apikey, typ)

    +

    Gibt eine Liste aller verfügbaren Provider zurück.

    +
    Parameter
    + + + + + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    apikeystring Der API Key
    typstring Der Typ zu dem die Providerloste ausgeben werden soll +Einer der Liste ["sms","fax","mail"]
    +
    Ausgabe
    + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    providerlistlist Eine Liste aller möglichen Provider
    +
    +

    DefaultRoute

    +

    defaultRoute(self, apikey, typ)

    +

    Gibt den Standardprovider zurück.

    +
    Parameter
    + + + + + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    apikeystring Der API Key
    typstring Der Typ zu dem die Providerloste ausgeben werden soll +Einer der Liste ["sms","fax","mail"]
    +
    Ausgabe
    + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    providerstring Der Standardprovider für den angeben Typ
    -
    -

    Methoden

    -
    -

    Route

    -

    route

    -

    - Diese Methode ermittelt die Routing-Entfernung zwischen zwei Koordinaten. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    typeenum[car,bicycle,foot]Die gewünschte Routing-Methode
    flonfloatDer Längengrad des Startpunktes
    flatfloatDer Breitengrad des Startpunktes
    tlonfloatDer Längengrad des Zielpunktes
    tlatfloatDer Breitengrad des Zielpunktes
    -
    Ausgabe
    - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    distancefloatDie ermittelte Routing-Distanz in km
    -
    -
    -

    Dist

    -

    dist

    -

    - Diese Methode ermittelt die direkte Entfernung zwischen zwei Koordinaten. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    flonfloatDer Längengrad des Startpunktes
    flatfloatDer Breitengrad des Startpunktes
    tlonfloatDer Längengrad des Zielpunktes
    tlatfloatDer Breitengrad des Zielpunktes
    -
    Ausgabe
    - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    distancefloatDie ermittelte Routing-Distanz in km
    -
    -
    -

    Geocode

    -

    geocode

    -

    - Ermittelt die Koordinaten zu einer Adresse. Diese Methode ist Kostenpflichtig. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    typeenum[fast, complete]Die Eingabemethode. Im Modus fast wird der Parameter number an den Parameter street angehängt sowie der Parameter postcode vor den Parameter city; Die Parameter postcode und number werden dann ignoriert.
    streetstrDer Straßenname der Adresse
    numberstrDie Hausnummer der Adresse
    postcodestrDie Postleitzahl der Adresse
    citystrDie Stadt der Adresse
    countrystrDas Land der Adresse, ISO 3166
    -
    Ausgabe
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    stageenum[1,2,3] - Grad des Erfolges des Geocodings:
    - 1 → Es stehen mehrere mögliche Adressen zur Auswahl.
    - 2 → Eine mögliche Adresse als Korrekturvorschlag.
    - 3 → Die Adresse konnte verifiziert und zugehörige Geokoordinaten ermittelt werden. -
    dataarray - Die ermittelten Adressdaten -
    data[i]array - Ein ermittelter Adressdatensatz -
    data[i][street]strName der Straße
    data[i][nr]strHausnummer
    data[i][fragment]strHausnummernzusatz (z.B. a bei 12a)
    data[i][postcode]strPostleitzahl
    data[i][city]strOrt
    data[i][country]str[2]Land (gemäß ISO 3166)
    data[i][accuracy]intGenauigkeit (Genau > Ungenau)
    data[i][lat]floatBreitengrad
    data[i][lon]floatLängengrad
    -
    -
    -

    SMS

    -

    sms

    -

    - Versendet eine SMS-Nachricht. Diese Methode ist kostenpflichtig. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    fromstr[11]|tel[16]Der gewünschte Absender (optional)
    totel[15]Emfänger-Nummer (gemäß ITU-T E.123)
    refstrReferenz für Antworten
    callbackstrCallback-URL für SMS-Antworten. Noch nicht implementiert.
    -
    Ausgabe
    - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    -
    -
    -

    Bank

    -

    bank

    -

    - Prüft Bankdaten auf Plausibilität. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    country[de]Das Land des Bankdatenformates
    bankint[8]Die Bankleitzahl
    accountint[10]Die Kontonummer (optional)
    -
    Ausgabe
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    bankarrayDer Bankdatensatz
    bank[id]int[8]Die Bankleitzahl
    bank[name]strName der Bank
    bank[city]strStadt
    bank[bic]strDer BIC der Bank
    accountarrayDer Kontodatensatz
    account[id]int[10]Die Kontonummer
    -
    -

    Boxcar

    -

    boxcar

    -

    - Sendet eine Push-Notification via Boxcar. Ist der Boxcar-user nicht subskribiert, wird statt der Nachricht eine Subskriptions-Anfrage gesendet. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    tostrE-Mail-Adresse des Boxcar-Accounts
    fromstrAbsender
    messagestrDie Nachricht
    urlstrDie URL die aufgerufen werden soll
    -
    Ausgabe
    - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    -
    -
    -

    Postcode-Match

    -

    postcodematch

    -

    - Liefert die Schwerpunkt-Koordinaten aller Postleizahlengebiete innerhalb eines Bereiches. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    bbox_nfloatMaximale Latitude
    bbox_sfloatMinimale Latitude
    bbox_efloatMaximale Longitude
    bbox_wfloatMinimale Longitude
    -
    Ausgabe
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    postcodesarrayErgebnisse
    postcodes[i]arrayErgebnis
    postcodes[i][postcode]strPostleitzahl
    postcodes[i][lat]floatLatitude des Schwerpunktes
    postcodes[i][lon]floatLongitude des Schwerpunktes
    -
    -
    -

    Postcode-Shape

    -

    postcodeshape

    -

    - Gibt eine Näherung an die geografische Definition eines Postleitzahlengebietes aus. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    postcodestrDie Postleitzahl des Gebietes
    -
    Ausgabe
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    postcodestr
    centerarray
    center[lat]flaot
    center[lon]flaot
    bboxarray
    bbox[n]float
    bbox[s]float
    bbox[w]float
    bbox[e]float
    shapearrayAlle Shapes dieses Postleitzahlengebietes
    shape[i]arrayEin Shape des Postleitzahlengebietes
    shape[i][j]arrayEin Punkt des Shapes
    shape[i][j][lat]arrayDie Latitude des Punktes
    shape[i][j][lon]arrayDie Longitude des Punktes
    -
    -
    -

    Fehlercode

    -

    - Wenn der Ausgabeparameter status einen Fehler indiziert, werden alle weiteren Ausgabeparameter ersetzt durch die Parameter code und msg. -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    codeint[3]Fehlercode
    msgstrFehlermeldung
    resultOptionale weitere Daten
    -

    Fehlercodes

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CodeBedeutung
    900Die aufgerufene Methode existiert nicht
    901Der API-Key ist ungültig
    902Fehler in externer API
    903Encoding-Problem: Ein Nicht-UTF-8-Zeichen hat den Parser gestoppt
    904Es wurden keine gültigen JSON-Daten im POST-Request gefunden
    910Ungültige Eingabemethode
    911Die eingegebenen Daten reichen nicht aus, um die Adresse zu bestimmen
    912Die Adresse wurde nicht gefunden
    913Für diese Adresse wurden keine Koordinaten gefunden
    914Die Koordinaten für diese Adresse sind nicht eindeutig
    921Ungültige Koordinaten
    922Keine Route gefunden
    930Keine Verbindung zum Gateway
    931Empfänger fehlerhaft
    932Absenderkennung zu lang
    933Nachrichtentext zu lang
    934Messagetyp nicht korrekt
    935Falscher SMS-Typ
    936Fehler bei Login
    937Guthaben zu gering
    938Netz wird von Route nicht unterstützt
    939Feature nicht über diese Route möglich
    940Ungültige BLZ
    941Ungültige Kontonummer
    942Ungültiges Land
    945Ungültiger Empfänger
    946Keine Nachricht angegeben
    947Der Empfänger ist nicht subskribiert
    948Der Empfänger hat den Dienst abgeschaltet
    950Die Postleitzahl ist ungültig.
    951Für diese Postleitzahl gibt es keine Shapes.
    952In diesem Bereich wurden keine Postleitzahlen gefunden.
    953Dieser Bereich enthält zu viele Postleitzahlen.
    999Unbekannter Fehler
    -
    diff -r e7b44716a564 -r f2f247a5b6c9 doc/tmpl/current.html --- a/doc/tmpl/current.html Tue Dec 06 19:46:00 2011 +0100 +++ b/doc/tmpl/current.html Tue Dec 06 23:53:18 2011 +0100 @@ -24,7 +24,7 @@
  • 3. Methoden
      -
    1. 3.${key+1} ${method.title}
    2. +
    3. 3.${key+1} ${method.title}
  • @@ -52,9 +52,9 @@

    Methoden

    -
    +

    ${method.title}

    -

    ${method.name}

    +

    ${method.name}${method.func_line}

    Diese Methode at bis jetzt noch keine Beschreibung.

    diff -r e7b44716a564 -r f2f247a5b6c9 doc/tmpl/new.html --- a/doc/tmpl/new.html Tue Dec 06 19:46:00 2011 +0100 +++ b/doc/tmpl/new.html Tue Dec 06 23:53:18 2011 +0100 @@ -19,6 +19,7 @@ Interfaces
    1. 2.1 XML-RPC
    2. +
    3. 2.1 SOAP
    4. 2.2 XML
    5. 2.3 JSON
    6. 2.4 JSONP
    7. @@ -26,51 +27,48 @@
  • 3. - Methoden -
      -
    1. 3.1 Route
    2. -
    3. 3.2 Dist
    4. -
    5. 3.3 Geocode
    6. -
    7. 3.4 SMS
    8. -
    9. 3.5 Bank
    10. -
    11. 3.6 Boxcar
    12. -
    13. 3.7 Postcode-Match
    14. -
    15. 3.8 Postcode-Shape
    16. -
    + Methoden +
      +
    1. 3.${key+1} ${method.title}
    2. +
  • -
  • 4. Fehlermeldungen
  • +

    Einführung

    - Die Mesngr API enthält viele Funktionen, die von Fahrradkurierdiensten benötigt werden. + Die Iro API enthält Funktion, die für den Massenversand nützlich sind.

    Interfaces

    - Die Mesngr API stellt verschiedene Interfaces bereit, die unterschiedlich angesprochen werden, aber das selbe tun. + + Die Iro API wird über verschiedene Interfaces bereit gestellt, die unterschiedlich angesprochen werden, aber das selbe tun.

    XML-RPC

    - Interface-URI: http://api.mesngr.de/xmlrpc + Interface-URI: http://localhost:8000/xmlrpc

    Die aufgerufene Methode wird dabei im <methodName /> übergeben.

    +
    +
    +

    SOAP

    - Das XML-RPC Interface nimmt die Parameter der aufgerufenen Methode als <struct /> inerhalb des ersten <param /> entgegen, alle weiteren <param />s werden ignoriert. + Interface-URI: http://localhost:8000/soap

    - Zeichen außerhalb des ASCII-Sets sind als HTML Entities zu übergeben. + Die aufgerufene Methode wird dabei im <methodName /> übergeben.

    XML

    - Interface-URI: http://api.mesngr.de/xml/<methode> + Interface-URI: http://localhost:8000/xml/<methode>

    Die aufgerufene Methode wird im Pfad der Interface-URI übergeben. @@ -85,7 +83,7 @@

    JSON

    - Interface-URI: http://api.mesngr.de/json/<methode> + Interface-URI: http://localhost:8000/json/<methode>

    Die aufgerufene Methode wird im Pfad der Interface-URI übergeben. @@ -97,10 +95,10 @@ Die Ausgabe erfolgt als JSON-Objekt.

    -
    +

    JSONP

    - Interface-URI: http://api.mesngr.de/jsonp/<methode>?callback=<callback> + Interface-URI: http://localhost:8000/jsonp/<methode>?callback=<callback>

    Die aufgerufene Methode wird im Pfad der Interface-URI übergeben. @@ -115,901 +113,52 @@ Die Ausgabe erfolgt als Javascript-Funktionsaufruf mit einem JSON-Objekt als Parameter.

    -
    -

    PHP

    -

    - Interface-URI: http://api.mesngr.de/php/<methode> +

    +
    +

    Methoden

    +
    +

    ${method.title}

    +

    ${method.name}${method.func_line}

    +

    + Diese Methode at bis jetzt noch keine Beschreibung.

    -

    - Die aufgerufene Methode wird im Pfad der Interface-URI übergeben. -

    -

    - Parameter können via HTTP per GET oder POST im Format application/x-www-form-urlencoded übergeben werden. -

    -

    - Die Ausgabe erfolgt als serialisiertes PHP-Objekt. -

    +
    Parameter
    + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    ${arg.name}${arg.typ}${arg.description}
    + +
    Ausgabe
    + + + + + + + + + + + + + + + +
    ParameterTypBeschreibung
    ${arg.name}${arg.typ}${arg.description}
    +
    -
    -

    Methoden

    -
    -

    Route

    -

    route

    -

    - Diese Methode ermittelt die Routing-Entfernung zwischen zwei Koordinaten. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    typeenum[car,bicycle,foot]Die gewünschte Routing-Methode
    flonfloatDer Längengrad des Startpunktes
    flatfloatDer Breitengrad des Startpunktes
    tlonfloatDer Längengrad des Zielpunktes
    tlatfloatDer Breitengrad des Zielpunktes
    -
    Ausgabe
    - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    distancefloatDie ermittelte Routing-Distanz in km
    -
    -
    -

    Dist

    -

    dist

    -

    - Diese Methode ermittelt die direkte Entfernung zwischen zwei Koordinaten. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    flonfloatDer Längengrad des Startpunktes
    flatfloatDer Breitengrad des Startpunktes
    tlonfloatDer Längengrad des Zielpunktes
    tlatfloatDer Breitengrad des Zielpunktes
    -
    Ausgabe
    - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    distancefloatDie ermittelte Routing-Distanz in km
    -
    -
    -

    Geocode

    -

    geocode

    -

    - Ermittelt die Koordinaten zu einer Adresse. Diese Methode ist Kostenpflichtig. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    typeenum[fast, complete]Die Eingabemethode. Im Modus fast wird der Parameter number an den Parameter street angehängt sowie der Parameter postcode vor den Parameter city; Die Parameter postcode und number werden dann ignoriert.
    streetstrDer Straßenname der Adresse
    numberstrDie Hausnummer der Adresse
    postcodestrDie Postleitzahl der Adresse
    citystrDie Stadt der Adresse
    countrystrDas Land der Adresse, ISO 3166
    -
    Ausgabe
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    stageenum[1,2,3] - Grad des Erfolges des Geocodings:
    - 1 → Es stehen mehrere mögliche Adressen zur Auswahl.
    - 2 → Eine mögliche Adresse als Korrekturvorschlag.
    - 3 → Die Adresse konnte verifiziert und zugehörige Geokoordinaten ermittelt werden. -
    dataarray - Die ermittelten Adressdaten -
    data[i]array - Ein ermittelter Adressdatensatz -
    data[i][street]strName der Straße
    data[i][nr]strHausnummer
    data[i][fragment]strHausnummernzusatz (z.B. a bei 12a)
    data[i][postcode]strPostleitzahl
    data[i][city]strOrt
    data[i][country]str[2]Land (gemäß ISO 3166)
    data[i][accuracy]intGenauigkeit (Genau > Ungenau)
    data[i][lat]floatBreitengrad
    data[i][lon]floatLängengrad
    -
    -
    -

    SMS

    -

    sms

    -

    - Versendet eine SMS-Nachricht. Diese Methode ist kostenpflichtig. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    fromstr[11]|tel[16]Der gewünschte Absender (optional)
    totel[15]Emfänger-Nummer (gemäß ITU-T E.123)
    refstrReferenz für Antworten
    callbackstrCallback-URL für SMS-Antworten. Noch nicht implementiert.
    -
    Ausgabe
    - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    -
    -
    -

    Bank

    -

    bank

    -

    - Prüft Bankdaten auf Plausibilität. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    country[de]Das Land des Bankdatenformates
    bankint[8]Die Bankleitzahl
    accountint[10]Die Kontonummer (optional)
    -
    Ausgabe
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    bankarrayDer Bankdatensatz
    bank[id]int[8]Die Bankleitzahl
    bank[name]strName der Bank
    bank[city]strStadt
    bank[bic]strDer BIC der Bank
    accountarrayDer Kontodatensatz
    account[id]int[10]Die Kontonummer
    -
    -
    -

    Boxcar

    -

    boxcar

    -

    - Sendet eine Push-Notification via Boxcar. Ist der Boxcar-user nicht subskribiert, wird statt der Nachricht eine Subskriptions-Anfrage gesendet. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    tostrE-Mail-Adresse des Boxcar-Accounts
    fromstrAbsender
    messagestrDie Nachricht
    urlstrDie URL die aufgerufen werden soll
    -
    Ausgabe
    - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    -
    -
    -

    Postcode-Match

    -

    postcodematch

    -

    - Liefert die Schwerpunkt-Koordinaten aller Postleizahlengebiete innerhalb eines Bereiches. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    bbox_nfloatMaximale Latitude
    bbox_sfloatMinimale Latitude
    bbox_efloatMaximale Longitude
    bbox_wfloatMinimale Longitude
    -
    Ausgabe
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    postcodesarrayErgebnisse
    postcodes[i]arrayErgebnis
    postcodes[i][postcode]strPostleitzahl
    postcodes[i][lat]floatLatitude des Schwerpunktes
    postcodes[i][lon]floatLongitude des Schwerpunktes
    -
    -
    -

    Postcode-Shape

    -

    postcodeshape

    -

    - Gibt eine Näherung an die geografische Definition eines Postleitzahlengebietes aus. -

    -
    Parameter
    - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    apikeystr[20]Der API Key
    postcodestrDie Postleitzahl des Gebietes
    -
    Ausgabe
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    postcodestr
    centerarray
    center[lat]flaot
    center[lon]flaot
    bboxarray
    bbox[n]float
    bbox[s]float
    bbox[w]float
    bbox[e]float
    shapearrayAlle Shapes dieses Postleitzahlengebietes
    shape[i]arrayEin Shape des Postleitzahlengebietes
    shape[i][j]arrayEin Punkt des Shapes
    shape[i][j][lat]arrayDie Latitude des Punktes
    shape[i][j][lon]arrayDie Longitude des Punktes
    -
    -
    -
    -

    Fehlercode

    -

    - Wenn der Ausgabeparameter status einen Fehler indiziert, werden alle weiteren Ausgabeparameter ersetzt durch die Parameter code und msg. -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ParameterTypBeschreibung
    statusboolFehlerindikator
    codeint[3]Fehlercode
    msgstrFehlermeldung
    resultOptionale weitere Daten
    -

    Fehlercodes

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CodeBedeutung
    900Die aufgerufene Methode existiert nicht
    901Der API-Key ist ungültig
    902Fehler in externer API
    903Encoding-Problem: Ein Nicht-UTF-8-Zeichen hat den Parser gestoppt
    904Es wurden keine gültigen JSON-Daten im POST-Request gefunden
    910Ungültige Eingabemethode
    911Die eingegebenen Daten reichen nicht aus, um die Adresse zu bestimmen
    912Die Adresse wurde nicht gefunden
    913Für diese Adresse wurden keine Koordinaten gefunden
    914Die Koordinaten für diese Adresse sind nicht eindeutig
    921Ungültige Koordinaten
    922Keine Route gefunden
    930Keine Verbindung zum Gateway
    931Empfänger fehlerhaft
    932Absenderkennung zu lang
    933Nachrichtentext zu lang
    934Messagetyp nicht korrekt
    935Falscher SMS-Typ
    936Fehler bei Login
    937Guthaben zu gering
    938Netz wird von Route nicht unterstützt
    939Feature nicht über diese Route möglich
    940Ungültige BLZ
    941Ungültige Kontonummer
    942Ungültiges Land
    945Ungültiger Empfänger
    946Keine Nachricht angegeben
    947Der Empfänger ist nicht subskribiert
    948Der Empfänger hat den Dienst abgeschaltet
    950Die Postleitzahl ist ungültig.
    951Für diese Postleitzahl gibt es keine Shapes.
    952In diesem Bereich wurden keine Postleitzahlen gefunden.
    953Dieser Bereich enthält zu viele Postleitzahlen.
    999Unbekannter Fehler
    -
    diff -r e7b44716a564 -r f2f247a5b6c9 iro/newuser.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/iro/newuser.py Tue Dec 06 23:53:18 2011 +0100 @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +#Copyright (C) 2009 Sandro Knauß + +#This program is free software; you can redistribute it and/or modify it under the terms +#of the GNU General Public License as published by the Free Software Foundation; +#either version 3 of the License, or any later version. +#This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +#without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +#See the GNU General Public License for more details. + +#You should have received a copy of the GNU General Public License +#along with this program; if not, see . + +class User: + ''' + class for a xmlrpc user + ''' + + def status(self, apikey, id=None, detailed=False): + u'''Gibt den aktuellen Status eines Auftrages zurück. + + Keywords: + apikey[string]: Der API Key + id[hash]: Eine Auftragsnummer + detailed[boolean]: Details ausgeben + + Return: + jobs[list]: Eine Liste der Aufträge. + job.name[string]: Angebener Name + job.status[string]: Status des Auftrages + + + ''' + pass + + def stop(self, apikey,id): + u'''Stoppt den angegeben Auftrag. + + Keywords: + apikey[string]: Der API Key + id[hash]: Eine Auftragsnummer + + Return: + + ''' + pass + + def sms(self, apikey, message, recipients, route="default"): + u'''Versendet eine SMS. + + Keywords: + apikey[string]: Der API Key + message[string]: Nachricht + recipients[list]: eine Liste von Emfänger-Nummern (gemäß ITU-T E.123) + route[string|list]: Route über den geschickt werden soll, + oder eine Liste von Routen, um Fallbacks anzugeben + + Return: + id[hash]: Die ID des Auftrages + + ''' + pass + + + def fax(self, apikey, subject, fax, recipients, route="default"): + u'''Versendet ein FAX. + + Keywords: + apikey[string]: Der API Key + subject[string]: Der Betreff + fax[string]: Das PDF base64 kodiert + recipients[list]: Eine Liste von Emfänger-Nummern (gemäß ITU-T E.123) + route[string|list]: Route über den geschickt werden soll, + oder eine Liste von Routen, um Fallbacks anzugeben + + Return: + id[hash]: Die ID des Auftrages + + ''' + pass + + def mail(self, apikey, subject, body, recipients, frm, route="default"): + u'''Versendet eine Email. + + Keywords: + apikey[string]: Der API Key + subject[string]: Der Betreff + body[string]: Der Email Body + recipients[list]: Eine Liste von Emailadressen + frm[string]: Die Absender Emailadresse + route[string|list]: Route über den geschickt werden soll, + oder eine Liste von Routen, um Fallbacks anzugeben + + Return: + id[hash]: Die ID des Auftrages + + ''' + pass + + def routes(self, apikey, typ): + u'''Gibt eine Liste aller verfügbaren Provider zurück. + + Keywords: + apikey[string]: Der API Key + typ[string]: Der Typ zu dem die Providerloste ausgeben werden soll + Einer der Liste ["sms","fax","mail"] + + Return: + providerlist[list]: Eine Liste aller möglichen Provider + + ''' + pass + + def defaultRoute(self, apikey, typ): + u'''Gibt den Standardprovider zurück. + + Keywords: + apikey[string]: Der API Key + typ[string]: Der Typ zu dem die Providerloste ausgeben werden soll + Einer der Liste ["sms","fax","mail"] + + Return: + provider[string]: Der Standardprovider für den angeben Typ + + + ''' + pass diff -r e7b44716a564 -r f2f247a5b6c9 iro/user.py --- a/iro/user.py Tue Dec 06 19:46:00 2011 +0100 +++ b/iro/user.py Tue Dec 06 23:53:18 2011 +0100 @@ -42,9 +42,7 @@ Keywords: id[hash]: Eine Auftragsnummer - default - alle Aufträge ausgeben detailed[boolean]: Details ausgeben - default - False Return: jobs[list]: Eine Liste der Aufträge. @@ -99,8 +97,7 @@ Keywords: message[string]: Nachricht recipients[list]: eine Liste von Emfänger-Nummern (gemäß ITU-T E.123) - provider[string]: Provider über den geschickt werden soll; - default - verschickt über den Standardprovider + provider[string]: Provider über den geschickt werden soll Return: id[hash]: Die ID des Auftrages @@ -120,8 +117,7 @@ subject[string]: der Betreff fax[string]: das pdf base64 kodiert recipients[list]: eine Liste von Emfänger-Nummern (gemäß ITU-T E.123) - provider[string]: Provider über den geschickt werden soll; - default - verschickt über den Standardprovider + provider[string]: Provider über den geschickt werden soll Return: id[hash]: Die ID des Auftrages @@ -147,8 +143,7 @@ body[string]: der Email Body recipients[list]: eine Liste von Emailadressen frm[string]: Die Absender Emailadresse - provider[string]: Provider über den geschickt werden soll; - default - verschickt über den Standardprovider + provider[string]: Provider über den geschickt werden soll Return: id[hash]: Die ID des Auftrages