Neue API Punkte erstellen

  • VB.NET (ASP)
  • Web API

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ISliceUrPanties.

    Neue API Punkte erstellen

    Hallo zusammen,

    ich versuche aktuell mich in das Thema ASP-NET API einzulesen und testweise einen API Service damit zu erstellen.

    Dazu habe ich das ASP Projekt nach dieser Anleitung nachgebaut. Funktioniert auch alles so weit. Ich kann per HTTP-GET https://localhost:<PORT>/api/Values die Demo Variablen abrufen. So weit, so gut.

    Wie kann ich nun eigene Endpunkte erstellen? Also dass es mehrere Abfragen geben kann z. B. localhost:<PORT>/api/MyTest.

    Testweise habe ich die generierte GetValues-Funktion mal kopiert und den Namen angepasst. Hat leider nicht funktioniert.
    Sah so aus

    Quellcode

    1. Public Function GetTest() As IEnumerable(Of String)
    2. Return New String() {"Test", "bestanden"}
    3. End Function


    Meldung, beim versuchten Aufruf per https://localhost:<Port>/api/GetTest

    Quellcode

    1. {
    2. "Message": "Es wurde keine HTTP-Ressource gefunden, die mit dem Anforderungs-URI \"https://localhost:44305/api/GetTest\" übereinstimmt.",
    3. "MessageDetail": "Es wurde kein Typ gefunden, der mit dem Controller namens \"GetTest\" übereinstimmt."
    4. }




    Kann mit jemand einen Denkanstoß geben, was ich da falsch mache?

    Danke euch1
    Hi,

    das Beispiel habe ich mir angesehen. Dort scheint der Aufbau aber schon mal grundsätzlich ein anderer zu sein.

    Anleitung schrieb:


    Wenn Ihr Dienst beispielsweise an der example.com/service.svc Adresse konfiguriert ist

    Wie kommt die service.svc -Adresse? Bei mir klappt der Aufruf über /api.

    Das Beispiel habe ich testweise mal auf VB-net umgeschrieben. Allerdings klappt das weiterhin nicht

    Spoiler anzeigen

    Quellcode: webapiconfig.vb

    1. Imports System.Net
    2. Imports System.ServiceModel
    3. Imports System.ServiceModel.Web
    4. Imports System.Web.Http
    5. Public Class ValuesController
    6. Inherits ApiController
    7. ' GET api/<controller>
    8. Public Function GetValues() As IEnumerable(Of String)
    9. Return New String() {"value1", "value2"}
    10. End Function
    11. Public Function GetTest() As IEnumerable(Of String)
    12. Return New String() {"Test", "bestanden"}
    13. End Function
    14. ' GET api/<controller>/5
    15. Public Function GetValue(ByVal id As Integer) As String
    16. Return "value"
    17. End Function
    18. ' POST api/<controller>
    19. Public Sub PostValue(<FromBody()> ByVal value As String)
    20. End Sub
    21. ' PUT api/<controller>/5
    22. Public Sub PutValue(ByVal id As Integer, <FromBody()> ByVal value As String)
    23. End Sub
    24. ' DELETE api/<controller>/5
    25. Public Sub DeleteValue(ByVal id As Integer)
    26. End Sub
    27. Interface IMusicService
    28. <OperationContract>
    29. <WebGet>
    30. Function LookUpArtist(ByVal album As String) As String
    31. <OperationContract>
    32. <WebInvoke>
    33. Sub AddAlbum(ByVal user As String, ByVal album As String)
    34. <OperationContract>
    35. Function GetAlbums(ByVal user As String) As String()
    36. End Interface
    37. End Class


    Aufruf von /api/LookUpArtist liefert dann den Standardfehler zurück

    Quellcode

    1. {
    2. "Message": "Es wurde keine HTTP-Ressource gefunden, die mit dem Anforderungs-URI \"https://localhost:44305/api/LookUpArtist?album=Test\" übereinstimmt.",
    3. "MessageDetail": "Es wurde kein Typ gefunden, der mit dem Controller namens \"LookUpArtist\" übereinstimmt."
    4. }


    Du musst diesen Endpunkt erstellen, ich habe mir dein verlinktes Tutorial nicht angeschaut, nur mal kurz geguckt. Da ist ein Ordner mit dem namen API und das ist auch alles so in der Konfiguration drin:

    Quellcode

    1. routetemplate: "api/{controller}/{id}",


    Am besten ist keine Tutorials zu schauen, da lernt man oft nicht ausreichend bei, kommt oft vor das wichtige Sachen nicht erwähnt werden. Fang am besten bei 0 an, und zwar hier:
    learn.microsoft.com/de-de/dotn…-services-for-aspnet-ajax

    Links auf der Seite im Navigationbereich, sieht du noch weitere Schritte, bis du dann dort ankommst was ich vorher schon verlinkte. Wenn du das alles verstanden hast, dann kannst du es wirklich und nicht nur Pi * Daumen.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D