Talk:stoney core: REST API

From stoney cloud
Revision as of 10:50, 5 January 2015 by Michael (Talk | contribs)

Jump to: navigation, search

Fragen / Inkonsistenzen

  • Wir haben im Header eine Location. Im Body manchmal ja, manchmal nein.
    • Gehört die Location in die Body Response rein? Falls ja:
      • Location müsste bei Update auch nicht hochgeschrieben werden?
  • Update
    • Statt leerem Body wäre hier eine Antwort logisch, wie bei der Kreierung.
  • Caching Controls: Manchmal kommt "Cache-Control: no-cache" zurück, manchmal "Cache-Control: none, private".
  • the service must recognize ETag, Last-Modified and Cache-Control: none provided by the client and act accordingly.
    • Machen wir überhaupt etwas mit dem "Cache-Control: none"? Müsste dies nicht eh der Default-Wert sein?
  • Mit belongsToResellerId und belongsToCustomerId sind wir inkonsequent. Manchmal haben wir eine belongsToResellerId, manchmal nicht.
  • Relations (queries/scoping): Haben wir nicht getestet!
    • /v1/resellers/4000001/customers -> collection resource (all customers of reseller with uid=4000001)
    • /v1/resellers/4000001/customers/4000002 -> resource (the customer with uid=4000002 of reseller with uid=4000001)
    • /v1/customers?belongsToResellerUID=4000001 -> collection resource (all customers of reseller with uid=4000001)
    • /v1/customers/4000002 -> resource (the customer with uid=4000002 of reseller with uid=4000001)
  • Wollen wir zukünftig statt zuwenig Berechtigungen immer einen leeren JSON Wert zurück geben? Ähnlich wie bei der Suche, wenn sie keine Ergebnisse findet.
    • Sonst konkret definieren, was zurück kommen muss.
  • Meiner Meinung nach müsste gemäss Spezifikation (On success (200) an empty response message body will be returned, otherwise ...) bei einer Löschung ein leerer JSON String und nicht "{ "success": 1 } zurück gegeben werden.
    • http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#2xx_Success
    • Wir müssten eigentlich "204 No Content" erhalten:
      • The server successfully processed the request, but is not returning any content. Usually used as a response to a successful delete request.
    • Bei "200 OK" käme sonst "In a POST request the response will contain an entity describing or containing the result of the action." zurück.
      • In diesem Falle würde ich eher "{ "Deletion successful": 1 } erwarten.
  • Actions
    • Den neuen HTTP Status Code "202 Accepted" einführen?
      • The request has been accepted for processing, but the processing has not been completed. The request might or might not eventually be acted upon, as it might be disallowed when processing actually takes place.
      • Eine Location für die Status-Abfrage ist nötig! In Form einer Job-ID oder ähnlichem.
  • Passwörter
    • Bei Update (PUT) haben wir nirgendwo klar definiert, dass das Passwort nicht nötig ist.
    • Es ist nirgendwo definiert, wie ein Passwort aussehen darf:
      • Minimale Länge?
      • Gross-/Kleinschreibung?
      • Sonderzeichen und/oder Zahlen?
    • Fände es gut, wenn wir dies zentral vorgeben.
    • Eventuell lassen wir die Vorgaben via API abfragen? In diesem Falle müsste es ins stoney-core Modul gehören?