2017-11-22 3 views
1

Basierend aufAzure API Management Service Set Körperpolitik - ändern JSON Antwort zurückgeben bestimmte Felder

Azure API Management Service "Set body" Policy

Wir haben die Antwort eines API-Dienst ändern. . Für ZB statt Rückkehr unter:

{ 
    "company" : "Azure", 
    "service" : "API Management" 
} 

würden wir nur zurückkommen:

{ "company" : "Azure" } 

Ich bin nicht sicher, wie dies zu tun, da ich keine Ahnung, welche Art von Programmiersprache/Syntax sie verwenden, wie unten in der Dokumentation gezeigt:

<set-body> 
@{ 
    string inBody = context.Request.Body.As<string>(preserveContent: true); 
    if (inBody[0] =='c') { 
     inBody[0] = 'm'; 
    } 
    return inBody; 
} 
</set-body> 
+0

ich glaube, es ist C#, ich meine, es sieht und fühlt sich so an – 4c74356b41

Antwort

1

Was man sich Policy expressions genannt wird und auf dem besten official documentation here beschrieben. Ein kurzes Zitat aus der Website lautet:

Policy Ausdrücke Syntax ist C# 6.0. Jeder Ausdruck hat Zugriff auf die implizit bereitgestellte Kontextvariable und eine zulässige Teilmenge der .NET Framework-Typen .

Eine entsprechende Probe in den set-bodysamples würde derjenige sein, die Ausgangsfilter:

<!-- Copy this snippet into the outbound section to remove a number of data elements from the response received from the backend service based on the name of the api product --> 
    <set-body>@{ 
     var response = context.Response.Body.As<JObject>(); 
     foreach (var key in new [] {"minutely", "hourly", "daily", "flags"}) { 
      response.Property (key).Remove(); 
     } 
     return response.ToString(); 
     } 
    </set-body> 

Um die für Ihr spezifisches Objekt anpassen - Sie service Eigenschaft entfernen mögen:

<set-body>@{ 
     var response = context.Response.Body.As<JObject>(); 
     foreach (var key in new [] {"service"}) { 
      response.Property (key).Remove(); 
     } 
     return response.ToString(); 
     } 
    </set-body> 
Verwandte Themen