문제
내가 어떻게 생성하는 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;
그들이 포함되어야 합는 추가적인 속성이 더해야한 유용합니다.
제휴하지 않습니다 StackOverflow