lørdag, januar 23, 2021

WebAPI: Objekter i Objekter

Daily Rush Debat Programmering WebAPI: Objekter i Objekter

  • Forfatter
    Emne
  • #0

    Festival_H
    Bruger
    4.630 indlæg
    Offline

    Nu er jeg endelig kommet igang med at lege med REST og så vælter det ind med spørgsmål.

    I REST er ideen jo at vi snakker Resources og ikke funktion kald. Så vi laver en HTTP GET på en resource List fx istedet for en GetList yada yada.

    Jeg har læst en masse beginning REST med ASP.NET MVC 4 WebAPI og det går sådan set godt nok alt sammen, men nu er jeg kommet lidt længere end den simple model har kan ikke helt forstå hvordan jeg fortæller koden hvad det er jeg vil.

    Oplæg: Nu vil jeg gerne lave objekter der har lister af objekter under sig.

    Hvis jeg fx har et List objekt med et ID og et Navn og en liste af Item.

    Hvis jeg skal hente en bestemt liste så er det api/list/5

    Makes sense.

    Men hvis jeg vil poste en item på liste 5 hvordan hutlan configurere eller laver jeg det i MVC 4??

    Så skulle der vel være en resource under list/5/item som jeg så laver en post på.

    Eller er det en PUT på liste resourcen?

    What would jebus do?

    Og husk nu: densutterjoikksigselv.dk

Viser 4 kommentarer - 1 til 4 (af 4 i alt)
  • Forfatter
    Kommentarer
  • #1

    eqMa
    Bruger
    107 indlæg
    Offline

    Nu kender jeg ikke WebAPI, men har leget lidt med REST i ruby on rails og udfra det ville jeg sige at begge løsninger burde være valide.

    Men det kan jo være at WebAPI har nogle andre begrænsninger, men prøv at kigge på dine “Routes” er sat op til at understøtte /list/5/item.

    #2

    FIRESTORM
    Bruger
    5.349 indlæg
    Offline

    Ud fra din request string kan du jo se hvilken liste der skal puttes på, så i din kode kan du hente det rigtige element og lave tilføjelsen dertil.

    Dog vil jeg nævne hvis du er igang med trivielle CRUD operationer bør du nok kigge på OData, .net svar hedder WCF data services (http://msdn.microsoft.com/en-us/data/odata.aspx) i stedet for de skal sidde og kode det hele selv.

    #3

    Festival_H
    Bruger
    4.630 indlæg
    Offline

    #2 Jeg vil gerne kode det selv for at få en bedre ide om hvordan det hænger sammen.

    #1 Det viser sig lige præcis at være Routing jeg skal ind og kigge på. Man definere nogle Routes og det er i dem jeg skal beskrive de forskellige routes jeg vil bruge.

    Routes er lige nu sat op til at understøtte api/{Controller}/{id}

    Så det er her jeg skal have lavet et eller andet med api/{Controller}/{id}/Item eller noget i den henretning

    thanks.

    Edit:
    Hvis andre løber ind i samme problem så poster jeg lige et link her: http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api

    Og husk nu: densutterjoikksigselv.dk

    #4

    Festival_H
    Bruger
    4.630 indlæg
    Offline

    #1 On second thought.. Hvis jeg laver en PUT på min liste så skal jeg jo i princippet sende hele listen af Items med for at PUT funktionen vil kunne finde ud af hvad der er tilføjet eller fjernet..

    Hvis jeg laver en api/list/5/item resource kan jeg lave hhv POST og DELETE uden at bekymre mig om resten af listen. Jeg ved på forhånd om der er tale om en Add eller Remove.

    Det er vist mere rigtigt på den måde tror jeg, selv om begge løsninger er mulige.

    Og husk nu: densutterjoikksigselv.dk

Viser 4 kommentarer - 1 til 4 (af 4 i alt)
  • Du skal være logget ind for at kommentere på dette indlæg.