Tags:
create new tag
, view all tags

Web-Service mit REST

Dokumentationen

Grundsätzliche Überlegungen

  • REST ist keine Technologie, sondern ein Stil, eine Philosophie
  • REST ist eigentlich unabhängig von HTTP, wird aber hauptsächlich in dem Bereich angewendet
  • CRUD (Create, Read, Update, Delete) sind Funktionen, wie sie im Web dauernd verwendet werden und stellen ein einfaches, einheitliches, universelles Interface dar
  • CRUD-Funktionen werden auf HTTP-Requests abgeleitet:
    • POST (Create)
    • GET (Read)
    • PUT (Update)
    • DELETE (Delete)
  • REST bedeutet, CRUD auf Ressourcen (nicht Tabellen!) anzuwenden
  • CRUD stellt das Interface, nicht die Implementation dar
  • Generell: aus objekt.methode wird POST objekt/{id}/objektmethode
  • jeder HTTP-Request sollte problemlos mehrmals hintereinander abgesetzt werden können, ohne dass daraus ein Problem resultiert

Design-Überlegungen

  • Schrägstriche / zeigen Hierarchie auf: /username/vermeul
  • Strichpunkte, wenn Hierarchie keine Rolle spielt: /username/vermeul;didi;corti
  • Abfragevariabeln verwenden, wenn ein Algorithmus aktiviert wird, z.B. /person/search?firstname=swen&familyname=vermeul

Beispiele

  • /username/<vermeul>
  • /username/vermeul;didi;corti
  • /person/<NPID>
  • /person/pdb/<PERSID>
  • /person/pdb/<PERSID>?show=employments
  • /person/search?firstname=swen&familyname=vermeul
  • /person/employee;eth-related;lecturer
  • /group/lz/00077
  • /group/lz/00077;00076;00075
  • /group/studenten/d-uwis/bsc
  • /group/<Gruppentyp>/<Gruppenname>
  • /service/mailbox?show=person&show=username

Besser wäre es vielleicht, die Datenbankquelle zuerst zu nennen:

  • /nethz/person/search?firstname=swen&familyname=vermeul
  • /pdb/person/<PERSID>

-- SwenVermeul - 2009-11-16

Topic revision: r6 - 2009-11-26 - vermeul
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback