-
Notifications
You must be signed in to change notification settings - Fork 22
Problem z dynamic routes #15
Description
Proszę w wolnej chwili o przykład wykorzystania Routes, szczególnie dynamicznych.
Przy próbie wykorzystania np. w przypadku takiej klasy:
using Soneta.Types.DynamicApi;
namespace Test.API
{
public interface ITestAPI
{
[DynamicApiMethod(HttpMethods.GET, nameof(GetKontrahenci), Route = "/kontrahenci")]
//[DynamicApiMethod(HttpMethods.GET, nameof(GetKontrahenci))] //WOULD WORK
public string GetKontrahenci();
[DynamicApiMethod(HttpMethods.GET, nameof(GetKontrahent), Route = "/kontrahenci/{kod}")]
//[DynamicApiMethod(HttpMethods.GET, nameof(GetKontrahent))] //WOULD WORK
public string GetKontrahent(string kod);
}
}
API zwraca 404 - not found - jeżeli testujemy w Swagger.
W przypadku testów przez Postman można wskazać inne URLe, wysyłka np. na http://[domena]:[port]/api/kontrahenci zwraca 401. 401 także jest zwracane w przypadku nieistniejących URLi np. http://[domena]:[port]/api/kontrahents albo http://[domena]:[port]/api/wszyscykontrahenci. Zapytanie GET http://localhost:9010/kontrahenci powoduje zwrotkę 404 (w sumie zgodnie z oczekiwaniami, ponieważ spodziewamy się przedrostka /api/ w URLach).
Potrzeba polega na napisaniu dodatku z API z bardziej dynamicznymi URLami, np.:
GET http://[domena]:[port]/api/kontrahenci/{kod}/osoby
GET http://[domena]:[port]/api/kontrahenci/{kod}/kontakty
GET http://[domena]:[port]/api/kontrahenci/{kod}/osoby
Albo
POST http://[domena]:[port]/api/setstan/{stan}/dokewidencji/{id}
POST http://[domena]:[port]/api/setstan/{stan}/dokhandlowe/{id}
Pow. jako przykład, rzeczywisty use-case jest trochę bardziej rozbudowany, żeby go tutaj opisywać.