티스토리 뷰

 

API Management에

API를 등록하고, Backend 연결을 완료했다.

 

Test 탭에서

Header, Body 아무 것도 입력하지 않고 테스트를 시도했더니

Backend에 도달해서

Backend가 응답한 메시지를 그대로 가지고 왔다.

 

응답 코드: 400, Bad Request

body: 에러 메시지에 대한 내용이 담겨있는데, 우리가 어떤 기술로 Backend를 운영하고 있는지 들킬(?) 메시지가 나온다. 

 

Backend가 패키지라 메시지를 수정할 수 없으니

APIM에서 처리할 수 있을거 같아서 매뉴얼을 찾아봤다.

 

해결 방법은 Outbound Policy를 활용했다.

https://learn.microsoft.com/ko-kr/azure/api-management/api-management-howto-policies

늘 그렇듯 매뉴얼 한참 보고 이해함.

 

처음엔 on-error 영역에 내용을 추가했다가

응답코드 400은 에러가 아니니까 outbound 영역에 로직을 추가하니 원하는 결과를 얻을 수 있었다.

<policies>
    <inbound>
        <!-- 요청 처리 정책 -->
        <base />
    </inbound>
    <backend>
        <!-- 백엔드 호출 정책 -->
        <base />
    </backend>
    <outbound>
        <!-- 응답 처리 정책 -->
        <choose>
            <when condition="@(context.Response.StatusCode == 400)">
                <set-status code="400" reason="Bad Request" />
                <set-header name="Content-Type" exists-action="override">
                    <value>application/json</value>
                </set-header>
                <set-body>
                    {
                        "error": {
                            "code": "400",
                            "message": "Your custom error message for bad requests."
                        }
                    }
                </set-body>
            </when>
            <otherwise>
                <!-- 다른 에러 처리 -->
            </otherwise>
        </choose>
    </outbound>
    <on-error>
        <base />
    </on-error>
</policies>
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함