scout-ch / hering

https://scout-ch.github.io/hering
GNU Affero General Public License v3.0
8 stars 2 forks source link

Eindeutige URLs verwenden #27

Open mario-zelger opened 7 months ago

mario-zelger commented 7 months ago

Im Moment werden die URLs von sections auf Basis des slugs abgeleitet. Die Eindeutigkeit basiert somit grundsätzlich auf dem Bereich / Kapitel. Wird dieser slug angepasst so ist die bisherige URL nicht mehr gültig.

Aufgrund der Übersetzungen sind die URLs zudem sprachabhängig. Das Potenzial für ungültige Links steigt damit noch zusätzlich. Hier ein Beipsiel eines einzelnen Kapitels.

Das aktuelle API liefert pro Bereich und Kapitel eindeutige, nummerische Ids. Diese könnten anstelle der slugs in die URL eingebaut werden. Das Format wäre dann /hering-root/#/:sectionId%23:chapterId.

Beispiel

[
    {
        "id": 1,
        "title": "Bereich 1",
        # ... mehr Daten
        "chapters": [
            {
                "id": 1,
                "title": "Kapitel 1",
                # ... mehr Daten
            },
            {
                "id": 2,
                "title": "Kapitel 2",
                # ... mehr Daten
            },
            # ... mehr Daten
    },
    # ... mehr Daten
]

URL aktuell: https://scout-ch.github.io/hering/#/Bereich-1%23Kapitel-1 URL neu: https://scout-ch.github.io/hering/#/1%231

Wenn #26 umgesetzt ist würde die neue URL https://hering.scout.ch/1#1 lauten. Eine sprachunabhängige URL würde zudem bei der Umsetzung von #10 helfen.