문제

내가 어떻게 생성하는 URL 을 특정 서비스에서 정의 ServiceStack?

를 포함하려고 전체 또는 상대적인 Url 을 다른 끝점에 대한 응답의 일부로 DTO. RestServiceBase 담고 RequestContext.AbsoluteUri, 하지만 그에 전적으로 의존하는 요청을 합니다.

도움이 되었습니까?

해결책

역팅

역팅 섹션에서 위키에서 사용하는 방법을 보여줍니다 extension 방법에 popualated 요청 DTO 를 생성하는 기준과 절대 URI 의:

당신이 사용하는 경우 [Route] 메타데이터 특성(반대로 유창한 API)신을 생성할 수 있는 강력한 형식의 URI 에 사용하고 그냥 dto 로을 생성시키는 url 을 외부의 ServiceStack 웹 프레임워크를 수행됩니다.NET 서비스를 사용하여 클라이언트 ToUrl(HttpMethod)ToAbsoluteUri(HttpMethod), e.g:

[Route("/reqstars/search", "GET")]
[Route("/reqstars/aged/{Age}")]
public class SearchReqstars : IReturn<ReqstarsResponse>
{
    public int? Age { get; set; }
}

var relativeUrl = new SearchReqstars { Age = 20 }.ToGetUrl();
var absoluteUrl = new SearchReqstars { Age = 20 }.ToAbsoluteUri();

relativeUrl.Print(); //=  /reqstars/aged/20
absoluteUrl.Print(); //=  http://www.myhost.com/reqstars/aged/20

이메일 연락처 모의 예를 보여줍를 사용하여 위의 역 라우팅을 확장하는 방법 채 노선을 위해 HTML 형태와 링크에 면도 보기.

다른 역 라우팅 연장 방법

new RequestDto().ToPostUrl();
new RequestDto().ToPutUrl();
new RequestDto().ToDeleteUrl();
new RequestDto().ToOneWayUrl();
new RequestDto().ToReplyUrl();

액세스하는 Http 요청

검사할 수도 있습 들어오는 기본 httpRequest 과:

var httpReq = base.RequestContext.Get<IHttpRequest>();

뿐만 아니라 근본 ASP.NET (또그래밍 방식으로 제어되)요청을 개체:

var aspNetReq = httpReq.OriginalRequest;

그들이 포함되어야 합는 추가적인 속성이 더해야한 유용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top