Как добавить пользовательский заголовок в Azure API Management перед вызовом серверной части

#azure #azure-api-management

#azure #azure-api-management

Вопрос:

У меня есть Rest Api, который предоставляется в Azure. Однажды вызванный Azure Api вызывает службу WCF в серверной части.

Во-первых, мне нужно преобразовать запрос JSON в XML. Кроме того, для вызова службы SOAP мне нужно добавить пользовательский заголовок, подобный этому:-

  <s:Header>
      <AuthHeader xmlns="http://abc.security.service">
         <UserID>UserID</UserID>
         <Token>Token</Token>
      </AuthHeader>
   </s:Header>
 

Как мне добавить «Политику входящих», которая преобразует запрос в XML и вводит пользовательский заголовок?

Любые идеи или предложения будут с благодарностью приняты!!

Ответ №1:

Для этого требования, пожалуйста, обратитесь к политике в моем APIM.

 <policies>
    <inbound>
        <base />
        <json-to-xml apply="always" />
        <set-body>@{ 
            string inBody = context.Request.Body.As<string>();
            string requestBody = inBody.Replace("<Document>","").Replace("</Document>","");
            string header = "<s:Header><AuthHeader xmlns="http://abc.security.service"><UserID>UserID</UserID><Token>Token</Token></AuthHeader></s:Header>";
            return header   requestBody; 
        }</set-body>
    </inbound>
    <backend>
        <base />
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
    </on-error>
</policies>
 

Пожалуйста, обратите внимание на escape-символ в header , который нам нужно использовать " вместо " .