Hallo zusammen,
da gefühlt in letzter Zeit doch diverse Fragen (auch von mir z.B.
Entity Framework-Klassen und Darstellung in der View) bzgl. APIs (und ähnliches) gekommen sind, habe ich ein Projekt zu erstellen, welches die Themen WebApi/OData auffasst.
In vielen der Antworten wird ja entsprechend auf WebApi / REST / OData hingewiesen.
Bei den allermeisten Beispielen die ich selbst dazu bisher jedoch gefunden und bearbeitet habe, hörten diese sehr oft nach den Grundzügen auf und basierten auf den denkbar einfachsten Datenmodellen.
Das eigentliche Projekt habe ich auf
GitHub bereitgestellt, sodass interessierte daran mitwirken können. (vielleicht kann es noch jemand Anhängen, der nicht an die 256KB Grenze gebunden ist!?).
Zum Projekt selbst sei gesagt:
- Das Thema ist eine minimale Applikationsverwaltung bestehend aus Applikation, Applikationsversionen und Applikationsverwaltern.
- Es fehlt noch sehr an Kommentaren, diese werde ich morgen Abend versuchen nachzubessern.
- Gerade der SPA Teil ist doch eher Neuland, hier gibt es sicherlich viel Optimierungspotential. Ich bin mir bewusst, dass dort nicht jede Funktion komplett ausprogrammiert ist. Diese soll hauptsächlich jedoch auch nur dazu dienen, die WebApi zu konsumieren.
Offene Fragen:
- Im OData Bereich ist es mir weiterhin rätselhaft, wie es möglich ist, dort nicht die Entitäten der Datenbank zu nutzen und trotzdem die OData Funktionalitäten zu erhalten
- Ich habe versucht die Verarbeitung der Requests in die BLL auszulagern. Wie handhabt ihr dies bei z.B. Patch? Nutzt ihr nicht das Delta zum Patchen oder übergebt ihr dieses in den BLL hinein?
- Wie wird in z.B. der SPA ein Batching umgesetzt, sodass erst beim Speichern der Applikation auch hinzugefügte/entfernte Manager verarbeitet werden?
Schön fände ich es, wenn dort sogar Verbesserungen/Best Practices eingearbeitet werden, sodass man dies hin und wieder als Orientierung nutzen kann.
Auf jeden Fall freue ich mich über jedes aufgedeckte Pitfall!
Ich bin mir nicht sicher, ob CodeReview der richtige Ort ist...irgendwie aber schon. Web-Entwicklung selbst fand ich auch nicht so richtig passend. Alternativ könnte es auch unter Projekte oder Smalltalk laufen :).