0

응답을 검증해야하는 웹 API에서 작업하고 있습니다. api에서 반환 된 응답이 올바른 형식인지 확인하기 위해 일부 일반 코드를 작성하려고합니다.웹 API 응답을 확인하는 방법

기본적으로 상태, 비고 등의 필드가 있습니다. 이러한 필드가 null이거나 유효하지 않은 경우 응답해야합니다. 그런 다음 일부 오류 코드를 반환해야하지만이를 달성하는 방법을 모르면 누군가 나를 안내 할 수 있습니까? 미리 감사드립니다.

덕분에, Sudama

+0

응답을 생성하는 방법과 생성하는 응답 유형이 명확하지 않습니다. 예를 들어, 모델에서 응답을 생성하고이를 JSON으로 포맷합니까? –

+0

안녕하세요, Shaun, asp.net 코어 웹 API에서 soap + xml을 수락/반환하도록 사용자 정의 입/출력 포맷터를 작성했습니다. 전역 필터를 사용하여 요청을 확인하고 있지만 출력물에 대해 동일한 결과를 얻을 수 있는지는 확실하지 않습니다. –

+1

결과 필터를 사용할 수 있습니다. https://docs.asp.net/en/latest/mvc/controllers/filters.html#result-filters –

답변

0

다음은 당신을 위해 일한다 수도 있습니다. 실제로 사용중인 IActionResult 구현에 적용 할 수 있지만 ObjectResult을 사용한다고 가정합니다. 다음은 생산 코드가 아닙니다. 오히려, 당신이 할 수있는 것에 대한 감각을 제공합니다.

public class MyResultFilter : IResultFilter 
{ 
    public void OnResultExecuted(ResultExecutedContext context) 
    { 

    } 

    public void OnResultExecuting(ResultExecutingContext context) 
    { 
     var result = context.Result as ObjectResult; 
     var value = result.Value as MyCustomType; 
     if (!IsValid(value) 
     { 
      context.Result = new StatusCodeResult(500); 
     } 
    } 

    private bool IsValid(MyCustomType value) 
    { 
     return value != null && 
      value.Status != null && 
      value.Remarks != null; 
    } 
} 
+0

컨텍스트에는 작업 설명자, HttpContext, Filter, RouteData, ModelState 및 Result 속성 만 있으므로 사용자 지정 속성에 액세스하는 방법을 모르는 경우 너무 많은 질문을하는 것이 유감입니다. –

+0

@SudamaTripathi 어떤 사용자 지정 속성에 액세스 하시겠습니까? –

+0

context.result를 검사하는 경우 내 사용자 지정 POCO 개체가있는 콘텐츠 형식, 형식화 된 형식, 형식 자, 상태 코드 및 값을 볼 수 있습니다. –