Hvorfor ingen PATCH i REST-API’et?

+1

Noget af det første man ser i e·conomics REST-dokumentation, er:

.

PUT Overwrite / Create. PUT is always directed at a ressource. PUT to an existing ressource will overwrite the full object and must include the full entity. PUT to a non-existing ressource will depending on support of defining the ID create a ressource at that path.

.

PATCH Add / Overwrite. PATCH is always directed at a ressource. In REST terms PATCH would allow changing select properties. Please note that our API does NOT feature PATCH support on JSON documents. Please use PUT and remember this must include the full entity/document.

.

Men hvorfor i alverden understøttes PATCH dog ikke? Den kursiverede sætning er helt i overensstemmelse med standard REST-praksis, men den gør PUT rimelig ubrugelig i rigtig mange sammenhænge – deraf PATCH.

.

Den grundlæggende fordel ved PATCH er at man kan opdatere en ressource uden at have kendskab til hele API-objektet der repræsenterer den. Vi har f.eks. alle vores kunder og produkter liggende på vores egen server også, men med andre oplysninger end i e·conomic. Hvis jeg opdaterer noget på et produkt og vil synkronisere den ændring over til e·conomic kan jeg gøre det med et enkelt PATCH-kald hvortil jeg kun skal bruge ressourcens ID og egenskaben der skal opdateres. Enkelt og hurtigt.

.

Begrænset til PUT bliver jeg først nødt til at lave et GET-kald for at få objektet, afkode det fra JSON-format, opdatere den pågældende egenskab, omkode objektet til JSON igen, og så foretage et PUT-kald med den opdaterede JSON-streng. Fem trin i stedet for et.

.

Jeg står over for at skulle opdatere godt og vel 2.200 produkter på denne måde, hvilket altså lader til at komme til at kræve ikke bare 2.200, men 4.400 kald. Eller faktisk 8.800 kald, for ud over egenskaber ved selve produkterne skal jeg også opdatere currency-specific-sales-prices på dem alle sammen, hvilket ikke umiddelbart ser ud til at kunne gøres i samme kald, så der skal jeg igennem de fem trin en gang til.

.

Er der nogen logisk grund til denne mangel?

i Spørgsmål » Integrationer og apps af (330 points)

2 Svar

Hej og mange tak for dit spørgsmål, 

Lige API'et er ikke min stærke side, så jeg vil anbefale dig at gå til https://www.e-conomic.com/ og tage kontakt til vores API team. De er uden tvivl mere kvalificeret til at give dig det rigtige svar. 

Rigtig god dag smiley


Venlig hilsen/Best regards

 

Jesper Mieritz

Knowledge Manager, Planet WOW

 

image

 

e-conomic er et produkt fra

Visma e-conomic A/S

Langebrogade 1, 1411 København K

CVR-nummer: 29403473

 

Hvis du gerne vil have indflydelse på de næste forbedringer, så er du velkommen til at besøge vores liste over forslag vi på nuværende tidspunkt overvejer.
- Hop herind og stem på de forslag du er enig i!
Spørgsmål af (94.4k points)

Jeg har modtaget følgende svar fra API-teamet:

Vi er pt. i gang med udviklingen af vores REST v.2 da vi desværre er stødt ind i problemer med vores nuværende REST api der gør det svært / umuligt at lave ændringer uden at ødelægge allerede oprettede integrationer.

Som en del af denne udvikling ligger der en undersøgelse af at tilføje PATCH til de endpoints hvor det vil give mening. Så PATCH kommer.

Det lader altså til at dette på et tidspunkt (forhåbentlig ikke først henne omkring 2030) bliver muligt.

siden Spørgsmål af (330 points)