rest api - struktura json i wstawianie danych do bazy

0

Cześc. Porusze dalej przykad z faktura.
Api ma obsługiwac wystaiwnie faktury. Czy wyslany od klienta json powinien zaierac nagłówek faktury i jej pozycje czy pierwszy request powinien wyslac dane naglowka i dopiero jak to zostanie zpaosane w bazie i zwrocone identyfikator naglowka to nalezy przeslac json z pozycjamio dla tego naglowka?

1

Jak logicznie chcesz to ogarnąć? Masz zamiar kazać użytkownikowi nacisnąć zapisz 2 razy, czy wysłać dwa requesty? I jedno i drugie nie ma sensu. Wydaje mi się, że model dokumentu powinien zawierać pozycje, aby zmniejszyć ilość requestów do API.

2

A jak przy drugim żądaniu coś zdechnie i pozycje się nie zapiszą to zamierzasz trzymać taki osierocony nagłówek w aplikacji? A jeśli nie to jak zamierzasz utrzymać tą spójność? Rozdzielanie tych zapisów to proszenie się o kłopoty i dodatkowe ścieżki do obsłużenia.

W ogóle skąd taki pomysł? Przecież zapisywanie każdej pozycji faktury osobno requestach to podobny poziom udziwnienia, a o to nie zapytałeś.

0

Dziękuję teraz widzę ze to zły pomysł rozbijania tego na dwa requesty. Bede zatem szedl w kierunku zeby json wysylany przez klienta musiał miec zarowno naglowek i pozycje.
@AdamWox @Saalin a jak widzicie możliwość dodawania nowych pozycji do istniejacej faktury (lub nawet edycja danych nagłówka lub edycja pozycji)? Nie potrafie sobie tego do konca wyobrazić. Bo zalozmy mam sytuacje ze wypelnilem formularz faktury i przeslalem ja do api (jednym jsonem naglowek i pozycje) . Teraz chce dopisac do faktuiry jeszcze jakies pozycje (lub zmodyfikowac nagłówke albo istniejace pozycje). Ja taka sytuacje widze tak:

  1. robie request do api o dana fakture
  2. w response otrzymuje ta fakture (naglowek + pozycje)
  3. w kliencie dodaje do kolekcji pozycji tej faktury kolejna pozycje
  4. odsylam taki powiekszony json do api jako update tej faktury

Poprawnie to widzę?

A co w przypadku edycji naglowka lub pozycji tez powinienem odeslac calosc jsona jaka pobralem z api razem z wprowadzonymi przeze mnie zmianami, czy tylko przeslac to co się zmienilo?

0

Hej,

To wszystko zależy :) Od Twojego klienta, przypadków użycia itp itd. Ogólnie możesz przesłać całość lub zmianę. W REST masz od tego PUT i PATCH. Należy zastanowić się nad zaletami i wadami obu i wybrać. Podejrzewam, że nie masz za dużego ruchu, nie chcesz oszczędzić na przesyłanych bajtach. Wybrałbym więc PUT.

1 użytkowników online, w tym zalogowanych: 0, gości: 1