Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

REST API service when called from azure APIM returning empty response body with Status code 200

I have added my REST api service in Azure API Management. I have followed all the steps given in this link Azure APIM. API works fine in local. It also works when accessed through published URL.

I have added OAuth2.0 security as well which is passing through fine.

My issue is When i try to access the operation through APIM published URL, the service is giving response 200 with empty content.

Can Someone please help.

like image 919
swathi Avatar asked Dec 18 '22 12:12

swathi


2 Answers

This problem occurs when people unintentionally delete the top level policy and remove the main forward-request policy that applies to all operations on all apis. Simply click the Add policy button to re-add the default policy at the top level scope.

like image 96
Darrel Miller Avatar answered Dec 31 '22 14:12

Darrel Miller


Old question, but I'm posting because I had a similar issue (empty response) caused by a different issue:

I was getting empty responses as I had expressions in a policy that read the response. By default, reading the response clears it (presumably because its a stream underneath).

Found some good docs here: https://learn.microsoft.com/en-us/azure/api-management/api-management-transformation-policies#SetBody

I fixed this by specifying "preserve content" when reading the response:

JObject responseJobj = null;
if (context.Response.Body != null) 
{ 
    responseJobj = context.Response.Body.As<JObject>(preserveContent: true); 
}
like image 32
brendanrichards Avatar answered Dec 31 '22 15:12

brendanrichards