2015-01-13 2 views
2

ASP.NET 보일러 플레이트에서 프로젝트를 작업하려고합니다.ASP.NET 보일러 플레이트 WebApi 메서드

내가 지금 여기에 동적 웹 API를 만들고있어 내가 가진 무엇 :

내 AppService :

public interface IBorrowLendAppService : IApplicationService 
{ 
    GetBorrowLendsOutput GetBorrowLends(GetBorrowLendsInput input); 
} 

내 입력 : 여기

public class GetBorrowLendsInput : IInputDto 
{ 
    public byte ItemType { get; set; } 
    public int PersonId { get; set; } 
} 

그리고 내 문제입니다 :

  • 내게 전화하는 방법 thod?

    :
  • 어떻게 내가 메소드를 호출있을 때 모든 데이터가없는 GetBorrowLends 내가 받고있어 오류 [GET]를

(상용구 워드 프로세서에서 그것에 대해 아무 정보가 없습니다) GET/POST 방법을 만들 수 있습니다 내가 호출하려고 해요 때

{ 
    "result": null, 
    "success": false, 
    "error": { 
     "code": 0, 
     "message": "Your request is not valid!", 
     "details": null, 
     "validationErrors": [ 
      { 
       "message": "input is null!", 
       "members": [ 
        "input" 
       ] 
      } 
     ] 
    }, 
    "unAuthorizedRequest": false 
} 

가 좋아 :

.../GetBorrowLends?ItemType=0&PersonId=1

을 내가 같은 오류가 발생하고있어

호출하기 데이터 [POST]는 : 나는 그것을 처리하려면 어떻게

{ 
    "result": null, 
    "success": false, 
    "error": { 
     "code": 0, 
     "message": "An internal error occured during your request!", 
     "details": null, 
     "validationErrors": null 
    }, 
    "unAuthorizedRequest": false 
} 

:

{ 
    "input":{ 
      "ItemType":"0", 
      "PersonId":"1" 
      } 
} 

는 다른 오류를 반환? 수동으로 GET/POST 메서드를 만드는 방법은 무엇입니까?

감사

편집 : 엔드 포인트를 작동하지으로 문제를 처리 한

. POST 메시지에 'Content-Type'매개 변수를 잘못 설정했습니다.

하지만 ApplicationService의 GET/POST 메서드에 대한 질문은 아직 열려 있습니다.

+0

경로가 올바르게 정의되어 있는지 확인해야합니다. –

+0

그들은 그것이있는 것처럼 보인다. 다른 경로를 실행하면 경로가 알려지지 않았다는 오류가 발생합니다. – Tomasz

+1

요청과 함께 호출 할 것으로 예상되는 메소드에 대한 컨트롤러 코드를 게시 할 수 있습니까?라우팅 정보도 포함해야합니다. – Dietz

답변

1

기본 HttpVerb는 게시로 설정됩니다.

/// <summary> 
/// Default HTTP verb if not set. 
/// </summary> 
private const HttpVerb DefaultVerb = HttpVerb.Post; 

그런 다음 IApiControllerActionBuilder에 동작 동사를 변경하는 방법이 있습니다.

IApiControllerActionBuilder<T> WithVerb(HttpVerb verb); 

당신이 (당신의 WebAPI 모듈의 Initialize에서) 다음 호출로 동사를 변경 할 수 있어야한다

DynamicApiControllerBuilder 
    .For<ITaskAppService>("tasksystem/taskService") 
    .ForMethod("SomeMethod").WithVerb(HttpVerb.Get) 
    .Build(); 

추가 정보는 on the website를 얻을 수있다.