문제

나를 구현하는 간단한 웹 서비스를 사용하여 ServiceStack 및 Sitefinity V3.7sp3net35.추가 ServiceStack 로 localhost/api 를 사용하여 이 웹사 config.후 서비스를 구현 클래스를 사용하여 IService 을 얻을 전체 항목 뉴스 내용을 기록한 글로벌 맨 위해 노선이 있습니다.결과는 항상 아이템.그것과 매우 유사하는 이타 게시 에 Sf 포럼도 있습니다.변경 ContentManager 또는 공급자는 항상 돌아온 아이템과 제로 계산합니다.내 Sf 이 수 있도록 다국어 ko,fr..를 사용하여 경로입니다.많은 것이 필요하 Async?.누군가의 도움을 받을 수 있는 나에게 이 문제를 해결하는 경우 사용 servicestack 물론입니다.

니다.

[Description("Find items by baseclass, or all default if no genre is provided")]
[RestService("/api/items")]
[RestService("/api/items/news")]
[RestService("/api/items/news/{provider}")]
[RestService("/api/items/news/{provider}/{language}")]
[AspNetCompatibilityRequirements(RequirementsMode =      AspNetCompatibilityRequirementsMode.Allowed)] 
public class Items
{
  public string provider { get; set; }
  public string language { get;set; }
  IList ItemsList{ get; set;  }  
}

/// <summary>
/// Summary description for NewsResponse
/// </summary>
public class ItemsResponse
{
   public ItemsResponse()
   {
   }
   public ResponseStatus ResponseStatus { get; set; } //Automatic exception handling
   public IList Items { get; set; }//return a list of objects
}

/// <summary>
/// Summary description for NewsServices
/// </summary>
public class ItemsService : ServiceStack.ServiceHost.IAsyncService<Items>
{
   //public object Execute(Items request)// with IService
   //{
   //    ItemsResponse response = new ItemsResponse();
   //    response.Items = ItemsList(request.provider,  request.language);//request.provider
   //    return response;
   //  ALWAYS ZERO AS RESPONSE
   //}

   //ERROR ON HANDLER ?    
   object IAsyncService<Items>.ExecuteAsync(Items request)
   {
      ItemsResponse response = new ItemsResponse();
      //if (request.provider != null)
      response.Items = ItemsList(request.baseclass, request.provider, request.language);//request.provider
      return response;    
    }

    public IList ItemsList(string provider, string language)
    {          
        if(provider==string.Empty)
            provider = NewsManager.DefaultContentProvider;
        if (language == string.Empty)
            language = "es";
        System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(language);
        NewsManager manager = new NewsManager(provider);
        //Get items from this language
        IList data = manager.Content.GetContent();
        return data;                    
    }
}
도움이 되었습니까?

해결책

제거 /apiRestService()'s. 그래서 다음과 같:

[RestService("/items")]
[RestService("/items/news")]
[RestService("/items/news/{provider}")]
[RestService("/items/news/{provider}/{language}")]

또는 당신의 url 을 해야 할 것입 domain.com/api/api/items...

당신은 테스트와 함께 귀하의 사이트 domain.com/api/metadata?

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