2013-06-18 27 views
7

Mamy obecnie jeden duży projekt API Service # # ServiceStack dla wszystkich usług w naszym systemie. Chcę podzielić to na mniejsze interfejsy API, które działają oddzielnie, aby ułatwić wdrażanie i testowanie. Całkiem podobny do opisanego przez Mike Hadlowa here.Używanie ServiceStack jako warstwy interfejsu API API

Jednak zamiast używać Nginx chciałbym użyć ServiceStack jako odwrotnego proxy. Ten "zewnętrzny" API poradziłby sobie z problemami związanymi z uwierzytelnianiem, a następnie przekazywał wszelkie przychodzące żądania do odpowiedniego wewnętrznego interfejsu API, korzystając z asynchronicznego wywołania REST HTTP REST.

Jak jednak utworzyć usługę spedytora? Załóżmy, że mam wewnętrzny interfejs API, który akceptuje wywołanie/hello. Jeśli próbuję utworzyć niestandardowy ServiceRunner na zewnętrznym hoście interfejsu API, nie mogę po prostu przechwycić ŻADNEGO połączenia. Nadal oczekuje, że niektóre trasy będą obecne, więc wywołanie/hello na zewnętrznym API nie powiedzie się. Czy muszę utworzyć ścieżkę typu dummy/hello na zewnętrznym hoście interfejsu API, aby móc przechwytywać ją za pomocą własnego ServiceRunner? Patrząc na resztę ServiceStack, jestem pewien, że jest to czystszy sposób.

punkty, jeśli to może jeszcze być łączone z Swagger :)

Odpowiedz

1

W tym czasie został poproszony pytanie, nie było prostym sposobem tworzenia wieloznaczny trasy off korzenia bazowy adres URL usługi. To znaczy. jeśli usługa była hostowana w katalogu głównym, nie było prostego sposobu na utworzenie/wildcard route/{*}, tak samo, jeśli usługa była hostowana w innym miejscu, powiedz/api, nie było prostego sposobu na utworzenie/api/{ *} wieloznaczna trasa.

Jednak poparcie dla Fallback route has recently been added to ServiceStack(see detailed example implementation.) Korzystanie z Zastępcze trasy można proxy wszystkie nierozpoznane wnioski do back-end bez konieczności wymienić je w swoim projekcie ServiceStack ty. Nie zapewnia jednak wsparcia dla Swagger.

Powiązane problemy