Christian Kruse: Wiki-Push im Mai

Beitrag lesen

Hallo Felix,

oder sich als schwer wartbar erwiesen haben.

dieses trifft wohl auf mein Beispiel zu. Habe ich das richtig verstanden? Denn einem Grundprinzip des Web widersprechend erkenne ich dann doch nicht darin.

Ein Grundprinzip des Webs ist es, dass hinter einer URL sich eine Resource befindet. Dieses Prinzip weichst du auf, wenn du hinter einer URL n>1 Aktionen ausführen kannst.

Das „wir schicken alles via POST an eine Resource und entscheiden dann, was getan wird“ ist eins davon; das wurde bei den SOAP-Java-Webservices der frühen 2000er bis zum Exzess getrieben.

Das finde ich per se nicht einmal schlimm.

Es hat sich als problematisch erwiesen in Punkto Wartbarkeit und Komplexität. Außerdem ist es nicht besonders semantisch.

REST-ful hat sich in dieser Hinsicht als überlegen erwiesen. Eine Kombination aus Request Method und URL mappt auf eine Aktion; das führt zu kleineren und weniger komplexen Methoden, zu einem saubererem Interface nach außen und damit insgesamt zu besser wartbarem Code.

Aha. Das habe ich zwar inhaltlich verstanden, sehe aber noch keinen Praxisbezug darin. Hast Du Beispiel-URLs, die das veranschaulichen könnten? Geht das in diese Richtung?

  • https://example.org/admin/user/delete/12345/
  • https://example.org/admin/user/edit/12345/
  • https://example.org/admin/user/new/12345/

Der REST-Weg für eine User-Verwaltung wären folgende URLs:

  • GET https://example.org/users für den Index/die User-Liste
  • GET https://example.org/users/1 zur Betrachtung eines einzelnen Users
  • GET https://example.org/users/1/edit um das Formular zum Bearbeiten eines Users aufzurufen
  • POST https://example.org/users um einen User tatsächlich auch anzulegen
  • PATCH https://example.org/users/1 oder PUT https://example.org/users/1 um einen User zu verändern
  • DELETE https://example.org/users/1 um einen User zu löschen

Solange die Browser noch keine anderen Methoden als GET oder POST können werden die anderen Methoden simuliert mit einem POST-Request und einer Art, die wahre Methode zu identifizieren; manche verwenden dazu einen request parameter _method (z.B. Rails), manche verwenden URL-Suffixe wie ;put.

Schau dir ansonsten mal die URLs dieses Forums an, die halten sich weitestgehend an das REST-Prinzip.

Das ist halt wie mit semantischem Markup. Muss man nicht, sollte man aber. Macht mans nicht, hat man Nachteile.

LG,
CK

2 133

Wiki-Push im Mai

Matthias Apsel
  • selfhtml-wiki
  1. 5
    Felix Riesterer
    1. 0
      Felix Riesterer
      1. 0
        Felix Riesterer
      2. 0
        Gunnar Bittersmann
        1. 0
          Thomas
          • meinung
          1. 0
            Thomas
          2. 0
            Gunnar Bittersmann
            1. 0
              Thomas
              1. 0
                Gunnar Bittersmann
                1. 0
                  Gunnar Bittersmann
                  • barrierefreiheit
                  • browser
                  • html
          3. 1
            Matthias Apsel
          4. 0
            marctrix
            1. 1
              JürgenB
        2. 0
          Felix Riesterer
          1. 3
            Gunnar Bittersmann
            1. 0
              Matthias Apsel
              1. 0
                Felix Riesterer
                1. 0
                  Matthias Apsel
                  1. 0
                    Felix Riesterer
                    • meinung
                    • programmiertechnik
                    • selfhtml-wiki
                    1. 0
                      Matthias Apsel
                    2. 0
                      Gunnar Bittersmann
                      1. 0
                        Felix Riesterer
                        1. 0
                          Gunnar Bittersmann
                          1. 1
                            Tabellenkalk
                            • meinung
                            • zur info
                            1. 0
                              Christian Kruse
                              1. 0
                                Tabellenkalk
                                1. 0
                                  Christian Kruse
                                  1. 0
                                    Tabellenkalk
                                    1. 0
                                      Christian Kruse
                                      1. 0
                                        Gunnar Bittersmann
                                        1. 0
                                          Christian Kruse
                                          1. -1
                                            Gunnar Bittersmann
                                            1. 1
                                              Matthias Apsel
                                              • meinung
                                        2. 0
                                          Gunnar Bittersmann
                                          • meinung
                                          • programmiertechnik
                                          1. 0
                                            Felix Riesterer
                                            1. 1
                                              Tabellenkalk
                                            2. 1
                                              Der Martin
                                              1. 0
                                                Gunnar Bittersmann
                                      2. 3
                                        marctrix
                                        1. 0
                                          Matthias Scharwies
                                        2. 0
                                          Felix Riesterer
                                          1. 0
                                            marctrix
                                            1. 0
                                              Gunnar Bittersmann
                            2. 0
                              Gunnar Bittersmann
                              1. 0
                                Tabellenkalk
                              2. 0
                                Tabellenkalk
                              3. 1
                                marctrix
                                1. 0
                                  Gunnar Bittersmann
                                  1. 1
                                    marctrix
                                    1. 0
                                      Gunnar Bittersmann
                                      1. 0
                                        marctrix
                                        1. -1
                                          Gunnar Bittersmann
                                          • menschelei
                        2. 1
                          Gunnar Bittersmann
                  2. 0
                    Felix Riesterer
                    • meinung
                    • selfhtml-wiki
                    1. 1
                      Matthias Apsel
                      1. 0
                        Felix Riesterer
                        1. 1
                          Felix Riesterer
            2. 0
              Felix Riesterer
              • meinung
              • selfhtml-wiki
              1. 1
                Der Martin
                1. 0
                  Felix Riesterer
                  1. 2
                    Felix Riesterer
                    1. 0
                      Der Martin
                      1. 0
                        Felix Riesterer
                2. 0
                  marctrix
                  1. 0
                    Der Martin
              2. 0
                Gunnar Bittersmann
                1. 1
                  Tabellenkalk
                  1. 0
                    Gunnar Bittersmann
                    1. 0
                      Tabellenkalk
                      1. 0
                        Gunnar Bittersmann
          2. 3
            Christian Kruse
            1. 1
              Felix Riesterer
              • meinung
              • selfhtml-wiki
              1. 1
                Christian Kruse
                1. 0
                  Julius
                2. 0
                  Felix Riesterer
              2. 0
                Gunnar Bittersmann
        3. 1
          Tabellenkalk
          • selfhtml-wiki
          • sprache
          1. 0
            Gunnar Bittersmann
            1. 0
              Der Martin
            2. 1
              Tabellenkalk
        4. 0
          marctrix
          1. 0
            Gunnar Bittersmann
            1. 0
              marctrix
              1. 0
                Felix Riesterer
                1. 0
                  marctrix
    2. 0
      Matthias Apsel
      1. 0
        Felix Riesterer
    3. 0
      Tabellenkalk
      1. 1
        Matthias Scharwies
        1. 0
          Felix Riesterer
    4. 3
      marctrix
      1. 0
        Felix Riesterer
        1. 0
          marctrix
          1. 0
            Felix Riesterer
            • php
            • programmiertechnik
            • selfhtml-wiki
            1. 0
              marctrix
              1. 0
                Matthias Apsel
                1. 0
                  Gunnar Bittersmann
                  • menschelei
                  1. 0
                    Matthias Apsel
                    1. 0
                      marctrix
                    2. 0
                      Gunnar Bittersmann
                      1. 0
                        Christian Kruse
                        1. 0
                          Gunnar Bittersmann
                          1. 0
                            Christian Kruse
                            1. 1
                              Gunnar Bittersmann
                              1. 1
                                Christian Kruse
                2. 0
                  marctrix
              2. 0
                Der Martin
                1. 0
                  Christian Kruse
                  1. 0
                    Der Martin
                    1. 0
                      Christian Kruse
                      1. 0
                        Der Martin
                        1. 0
                          Christian Kruse
                2. 0
                  marctrix
            2. 0
              Christian Kruse
              1. 0
                marctrix
                1. 0
                  Matthias Apsel
                  • menschelei
                  • zu diesem forum
                2. 0
                  Felix Riesterer
              2. 0
                Felix Riesterer
                1. 0
                  Christian Kruse
                2. 0
                  Felix Riesterer
                  1. 1
                    Christian Kruse
                    1. 0
                      Felix Riesterer
                      • php
                      • programmiertechnik
                      1. 3
                        Christian Kruse
                        1. 1
                          Felix Riesterer
                        2. 0
                          Christian Kruse
                          1. 0

                            RESTful pattern

                            Felix Riesterer
                            1. 0
                              Christian Kruse
  2. 3
    Felix Riesterer
    • php
    • selfhtml-wiki
    1. 1

      PHP/Anwendung und Praxis/Formulardaten auswerten

      Matthias Scharwies
      1. 0
        Felix Riesterer
        1. 0
          Matthias Apsel
        2. 0
          marctrix