RESTに続いて、APIが検出可能であり、相互にリンクする必要があることをお勧めします。
ServiceStackはあらゆる種類の逆ルーティングをサポートしていますか?ASPMVCのようなものを探していUrl.RouteLink
ます。
RESTに続いて、APIが検出可能であり、相互にリンクする必要があることをお勧めします。
ServiceStackはあらゆる種類の逆ルーティングをサポートしていますか?ASPMVCのようなものを探していUrl.RouteLink
ます。
ここで述べられているいくつかの混合概念があります。
ここで、一方が他方を意味するものではないことを明示的に述べたいと思います。一方では、RESTアーキテクチャ(構築しているシステムを問わず)に従うことを検討しており、他方では、型付きAPIを使用する強い型付けの慣行に従いたいと考えています。この場合、外部URIを生成します。 API。RESTは型付きAPIを促進せず、代わりにAPIの外部URIサーフェスと緩く型付けされたContent-Typeにバインドすることを好むため、これらはやや対照的なスタイルです。強い型付きの言語では型付きAPIにバインドすることをお勧めしますが、たとえば、エンドツーエンドの型付きAPI ServiceStackは、すぐに使用できるようにサポートしています。
ServiceStackにはASP.NETMVCの「逆ルーティング」の概念/機能は明示的にありませんが、.NETServiceクライアントがユーザー定義のカスタムルートを生成および使用するために使用するのと同じ機能を再利用できます。これを使用するには、DTOでカスタムルートを指定する必要があります(つまり[Route]
、AppHostの流暢なAPIではなく属性を使用します)。例:
[Route("/reqstars/search", "GET")]
[Route("/reqstars/aged/{Age}")]
public class SearchReqstars : IReturn<ReqstarsResponse>
{
public int? Age { get; set; }
}
var relativeUrl = new SearchReqstars { Age = 20 }.ToUrl("GET");
var absoluteUrl = EndpointHost.Config.WebHostUrl.CombineWith(relativeUrl);
relativeUrl.Print(); //= /reqstars/aged/20
absoluteUrl.Print(); //= http://www.myhost.com/reqstars/aged/20
ToAbsoluteUri
または、Absolute Urlが必要な場合は、 Extensionメソッドを使用できます。
var absoluteUrl = new SearchReqstars { Age = 20 }.ToAbsoluteUri();