[API][Vue][Laravel] Algemene API / Vue vraag

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • basvaningen
  • Registratie: Augustus 2012
  • Laatst online: 26-08 09:22
Hallo,

Even een algemene vraag. Wat hoort volgens de standaard?

Ik heb een Vue.js frontend en een Laravel API backend. Via de API kan ik categorieen toevoegen/verwijderen/updaten etc.

Als ik de afbeelding van een categorie wil wijzigen kan ik dat op verschillende manieren doen:

1. Na op "Opslaan" klikken. vanuit de frontend een aparte API aanspreken op eerst de oude afbeelding te verwijderen, vervolgens de nieuwe als formdata meesturen naar de update API.

2. Na op "Opslaan" klikken. 1 api aanspreken waarin de de update data meestuur, maar ook bijv een optie "RemoveOldImage = true".

Mijn vraag:
Is het gangbaar om parameters mee te sturen in een API, of is het volgens de standaard alleen de bedoeling om data te sturen en de rest in de frontend af te handelen.
Als ontwikkelaar ben je natuurlijk vrij om te kiezen, maar wil mijzelf wel zoveel mogelijk aan de standaarden houden.

Alvast bedankt.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Groentjuh
  • Registratie: September 2011
  • Laatst online: 10:34
Twee api calls kan natuurlijk wel lastiger zou, want wat nou als alleen de eerste call lukt en die tweede niet, omdat bijvoorbeeld er geen netwerkverbinding meer is.

Ik weet niet hoe jouw modellen zijn ingericht, maar is dit niet eigenlijk een wijziging van die afbeelding en niet een verwijder+toevoegen?

Acties:
  • 0 Henk 'm!

  • basvaningen
  • Registratie: Augustus 2012
  • Laatst online: 26-08 09:22
@Groentjuh Klopt, het is een wijziging van de afbeelding.
Maar om een wijziging te doen zul je de oude afbeelding moeten verwijderen om de nieuwe te uploaden.

Mijn voorkeur gaat ook uit naar naar 1 API call. Ik weet alleen niet of het gebruikelijk is om parameters in een API call mee te sturen die niks met de data van doen hebben.
Ik heb het zo voor ogen in 1 call:
category.name = Categorienaam
category.image = URL van "oude" afbeelding
category.newimage = RAW data van de afbeelding

Of is er nog een betere oplossing

Acties:
  • 0 Henk 'm!

  • PainkillA
  • Registratie: Augustus 2004
  • Laatst online: 26-08 19:26
wat er op api niveau gebeurt is dat je een Category update. Dat is 1 actie die in zijn geheel moet lukken of falen zonder extra effecten. Bij die actie kan er zowel textuele data als de afbeelding wijzigen aar in dit geval gaat het om alleen de afbeelding. Het opsturen van "oude" data is volstrekt onnodig. De backend weet precies welke afbeelding op dit moment aan een category hangt.

Sterker nog je wil dit niet eens in de api call toestaan. De backend is alwetend en de enige bron van waarheid. Iemand kan zomaar allerlij "oude afbeelding" data meesturen waarna er foutieve bestanden worden verwijderd.

Het lijkt mij dat de UpdateCategoryJob / actie of welk stuk code dan ook verwantwoordelijk is voor het updaten van de category de oude afbeelding verwijderd zodra de nieuwe successvol is opgeslagen in een storage + updaten van de Category entity in de database.

Acties:
  • 0 Henk 'm!

  • Tsjilp
  • Registratie: November 2002
  • Niet online

Tsjilp

RS[I]ds

Dit lijkt mij een PATCH van de category met de velden die je wilt wijzigen (mits REST API), in dit geval category.image = nieuwe afbeelding.
Wat de oude afbeelding is, is irrelevant.

Raar... Is zo gek nog niet


Acties:
  • 0 Henk 'm!

Verwijderd

Je mist bij de update nog het category id of uuid. In je backend doet ie een Read/ update fields/ write
Pagina: 1