2016-08-17 2 views
2

ServiceStack을 사용하여 고객 서비스를 만들었지 만이 메서드에서 개체 목록을 전달할 수는 없습니다.ServiceStack에서 개체 목록 전달

고객 서비스 -

public class EntityService : Service 
    { 
     /// <summary> 
     /// Request for entity information list 
     /// </summary> 
     /// <param name="request"></param> 
     /// <returns></returns> 
     public object Any(List<CustomerRequest> request) 
     { 

     } 

} 

요청 DTO -

[Route("/api/V1/GetCustomerDetails", Verbs = "POST", Notes = "")] 
    public class CustomerRequest : IReturn<List<CustomerResponse>> 
     { 
      [ApiMember(Name = "GetCustomerDetails", Description = "GetCustomerDetails", ParameterType = "body", DataType = "List<BaseRequest>", IsRequired = true)] 
      List<BaseRequest> _baseRequest {get;set;} 
     } 

public class BaseRequest 
{ 
      public string CustId { get; set; } 

      public string CustName { get; set; }  

      public string CustAddress { get; set; } 
} 

당신이 날은 ServiceStack 후 작업에 개체의 목록을 통과하는 올바른 방법이 무엇인지 알려 주시기 바랍니다 수 없습니다.

답변

4

ServiceStack의 각 서비스는 하나의 구체적인 콘크리트 요청 DTO 유형을 허용해야합니다. 여러 요청을 보내는 방법은 AutoBatched Requests에서 확인할 수 있습니다.

당신이 유형의 목록을 받아 서비스를 원하는 경우 예, 당신은 List<T>을 상속 할 수 있습니다, 예를 들면 :

나는이 올바른 경우 확인하시기 바랍니다 수있는 BaseRequest class.So 내 질문을 업데이트 한
public class CustomerRequests : List<CustomerRequest>{} 

public class EntityService : Service 
{ 
    public object Any(CustomerRequests request) 
    { 

    } 
} 
+0

실행할 방법? – Dev

+0

@intelliCoder '_baseRequest' 속성을 가진 서비스가 JSON을 기대하고 있다는 것을 의미하므로 public API에 모든 속성이 public이 아니어야하고 공개 API에서 이름이 노출되지 않아야합니다. 예를 들어 {{ "_baseRequest": [{ "CustId ": 1}, {"CustId ": 2}}}'추한 것입니다. – mythz

+2

@intelliCoder는 ServiceStack 문서의 [Designing APIs section] (https://github.com/ServiceStack/ServiceStack/wiki#documentation)에서 ServiceStack으로 서비스를 작성하는 예제를 살펴 봅니다. – mythz