ServiceStack으로 오류 메시지 처리

TheBert

웹 서비스에서 요청 된 개체 내에 오류 메시지를 유지하는 권장 방법이 있습니까?

일부 예에서는 일부 HTTP 오류 코드를 포함하는 래퍼 클래스를 반환하는 웹 서비스를보고, 다른 일부는 .NET 예외 메시지를 보유하고 있습니다. 반면에 일반 객체 또는 객체 목록을 반환하는 예제가 있습니다.

스콧

오류 처리는 처음에는 혼란스러워 보일 수 있습니다. 공식 문서가 여기에있다 . 그러나 본질적으로 ServiceStack은 일관된 방식으로 오류를 반환하므로 클라이언트는 항상 오류를 처리하는 방법을 알고 있습니다. 일반적인 C # 방식으로 예외를 throw해야합니다. ServiceStack은이를 포착하여 다음과 ResponseStatus같은 개체에 캡슐화합니다 .

public class ResponseStatus 
{
    public string ErrorCode { get; set; }
    public string Message { get; set; }
    public string StackTrace { get; set; }
    public List<ResponseError> Errors { get; set; }
}

여기에 전체 정의

따라서 ResponseStatus의 채워진 ResponseStatus개체 가있는 속성이 포함 된 응답 개체를 받게됩니다 .

참고할 사항 :

  • StackTrace속성은 debugServiceStack AppHost Config에서 모드 를 활성화 한 경우에만 포함됩니다 . 즉 :

    SetConfig(new HostConfig { DebugMode = true });
    

    이것은 참조하는 .NET 예외 DebugMode이며 설정 여부 따라 조건부로 표시 됩니다.


  • Errors의 목록 ResponseErrorIS은 유효성 검사 오류 실패에 대한 채워집니다. 이것은 유효성 검사 오류 목록입니다. 그렇기 때문에 일부 예제에서 일반 오류 응답 (예 : 유효성 검사 오류 아님 )과 오류 목록이 첨부 된 응답 (유효성 검사 오류)이 표시 됩니다. 문서에서 유효성 검사에 대한 섹션도 읽어야합니다 . ResponseError개체 의 형식 은 다음과 같습니다.

    public class ResponseError
    {
        public string ErrorCode { get; set; }
        public string FieldName { get; set; }
        public string Message { get; set; }            
    }
    

    ErrorCodeMessageResponseStatus객체의 첫 번째 항목에서 이동합니다 Errors목록입니다.

어떤 사람들에게 혼란스러워 ResponseStatus지는 곳은 예상되는 응답 요청의 속성으로 를 포함하는 방법 입니다.

따라서 다음 Person과 같은 객체 를 반환하고 싶다고 가정합니다 .

class Person
{
    string FirstName { get; set; }
    string LastName { get; set; }
}

Person응답 을 반환하는 요청에 대해 유효성 검사 예외가 발생한 경우 다음 과 같은 JSON 응답을받을 수 있습니다.

{
    "ResponseStatus": {
         "ErrorCode": "ShouldNotBeEmpty",
         "Message": "'FirstName' should not be empty",
         "StackTrace": "..."
         "Errors": [
             {
                 "ErrorCode": "ShouldNotBeEmpty",
                 "FieldName": "FirstName",
                 "Message": "'FirstName' should not be empty"
             },
             {
                 "ErrorCode": "ShouldNotBeEmpty",
                 "FieldName": "LastName",
                 "Message": "'LastName' should not be empty"
             },
         ]
    }
}

Person의 응답 객체는이 응답에 포함되지 않으며 ResponseStatus속성을 포함하는 객체 일뿐 입니다. 상태와 함께 응답 객체를 포함하려면 다음과 같이 사람 클래스를 선언해야합니다.

class PersonResponse
{
    ResponseStatus ResponseStatus { get; set; }
    string FirstName { get; set; }
    string LastName { get; set; }
}

그런 다음 예외가 발생하면 응답에 응답 객체와 상태가 포함됩니다.

{
    "FirstName": "",
    "LastName": "",
    "ResponseStatus": {
        ...

ServiceStack은 예외가 발생할 때 반환하는 오류 형식에 대한 많은 제어 기능을 제공합니다. 위에서 링크 한 공식 문서를 읽고 이해하는 것이 가장 좋습니다. 사용자 정의는 고급 주제에 가깝습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Flutter 용 Firebase 클라우드 메시징-선택적으로 백그라운드 메시지 처리 오류

분류에서Dev

VBScript 오류 메시지 및 처리

분류에서Dev

노드 syslog가 "오류 처리 로그 메시지"를 출력합니다.

분류에서Dev

PromiseKit으로 오류 처리

분류에서Dev

JSON으로 논리 앱 메시지 보내기 오류

분류에서Dev

ClearCase [cleartool] 명령 오류 메시지 및 오류 처리

분류에서Dev

Ajax 오류 처리기에 오류 메시지 전달

분류에서Dev

리디렉션 및 메시지로 오류를 처리하는 방법을 표현

분류에서Dev

오류로 보이지 않는 sqlcmd.exe "Timeout expired"메시지를 어떻게 처리합니까?

분류에서Dev

오류 처리 설계 : 오류 메시지를 오류 코드에 바인딩

분류에서Dev

Ktor-코 루틴으로 처리되지 않은 오류 게시

분류에서Dev

메시지 전달시 Erlang 처리 "badarg"오류

분류에서Dev

EntityCommandExecutionException 처리 및 오류 메시지 표시

분류에서Dev

SQL에서 controller.cs로 발생한 오류 메시지를 어떻게 처리합니까?

분류에서Dev

file_get_contents () 처리 오류 메시지

분류에서Dev

Javascript에서 Pyramid HTTP 오류 메시지 처리

분류에서Dev

이미지 처리 오류

분류에서Dev

오류 메시지를 파일로 리디렉션-쉘

분류에서Dev

T-SQL : 일괄 처리를 실행하는 동안 오류가 발생했습니다. 오류 메시지 : Select * from MyTable에 대한 산술 오버플로

분류에서Dev

홈 페이지로 리디렉션하여 404 오류 처리

분류에서Dev

Graphql 변형으로 POST 오류 처리

분류에서Dev

redux-toolkit으로 오류 처리

분류에서Dev

`$ @`사용으로 오류 처리

분류에서Dev

is 구문으로 PHP 오류 처리

분류에서Dev

JSON으로 봄 보안 오류 처리

분류에서Dev

응답으로 인증 오류 처리

분류에서Dev

FTP 오류 메시지 캡처

분류에서Dev

Firebase 함수-ImageMagick으로 이미지 흐리게 처리가 실패하고 오류 코드 4가 표시됨

분류에서Dev

Unity 전 처리기 지시문 오류?

Related 관련 기사

  1. 1

    Flutter 용 Firebase 클라우드 메시징-선택적으로 백그라운드 메시지 처리 오류

  2. 2

    VBScript 오류 메시지 및 처리

  3. 3

    노드 syslog가 "오류 처리 로그 메시지"를 출력합니다.

  4. 4

    PromiseKit으로 오류 처리

  5. 5

    JSON으로 논리 앱 메시지 보내기 오류

  6. 6

    ClearCase [cleartool] 명령 오류 메시지 및 오류 처리

  7. 7

    Ajax 오류 처리기에 오류 메시지 전달

  8. 8

    리디렉션 및 메시지로 오류를 처리하는 방법을 표현

  9. 9

    오류로 보이지 않는 sqlcmd.exe "Timeout expired"메시지를 어떻게 처리합니까?

  10. 10

    오류 처리 설계 : 오류 메시지를 오류 코드에 바인딩

  11. 11

    Ktor-코 루틴으로 처리되지 않은 오류 게시

  12. 12

    메시지 전달시 Erlang 처리 "badarg"오류

  13. 13

    EntityCommandExecutionException 처리 및 오류 메시지 표시

  14. 14

    SQL에서 controller.cs로 발생한 오류 메시지를 어떻게 처리합니까?

  15. 15

    file_get_contents () 처리 오류 메시지

  16. 16

    Javascript에서 Pyramid HTTP 오류 메시지 처리

  17. 17

    이미지 처리 오류

  18. 18

    오류 메시지를 파일로 리디렉션-쉘

  19. 19

    T-SQL : 일괄 처리를 실행하는 동안 오류가 발생했습니다. 오류 메시지 : Select * from MyTable에 대한 산술 오버플로

  20. 20

    홈 페이지로 리디렉션하여 404 오류 처리

  21. 21

    Graphql 변형으로 POST 오류 처리

  22. 22

    redux-toolkit으로 오류 처리

  23. 23

    `$ @`사용으로 오류 처리

  24. 24

    is 구문으로 PHP 오류 처리

  25. 25

    JSON으로 봄 보안 오류 처리

  26. 26

    응답으로 인증 오류 처리

  27. 27

    FTP 오류 메시지 캡처

  28. 28

    Firebase 함수-ImageMagick으로 이미지 흐리게 처리가 실패하고 오류 코드 4가 표시됨

  29. 29

    Unity 전 처리기 지시문 오류?

뜨겁다태그

보관