Azure Functions 2 - How to control json serialization settings
I want to be able to control how json is formatted when I return a content result from a Azure Function (V2). The following is a simplified version of what I am doing:
[FunctionName("CreateThing")]
public static async Task<IActionResult> CreateThingAsync([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "thing")]HttpRequest req, ILogger log)
try
var result = await GetResultAsync(req);
return new CreatedResult($"thing/result.id", result);
catch(ErrorException)
return new BadRequestObjectResult(e.Error);
Is there a way to control how the results are formatted when they are returned, without using attributes on my models? I want to be able to use JsonSerializerSettings but I cant find a way of being able to configure this for the results that are returned as per the example above.
azure json.net azure-functions
add a comment |
I want to be able to control how json is formatted when I return a content result from a Azure Function (V2). The following is a simplified version of what I am doing:
[FunctionName("CreateThing")]
public static async Task<IActionResult> CreateThingAsync([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "thing")]HttpRequest req, ILogger log)
try
var result = await GetResultAsync(req);
return new CreatedResult($"thing/result.id", result);
catch(ErrorException)
return new BadRequestObjectResult(e.Error);
Is there a way to control how the results are formatted when they are returned, without using attributes on my models? I want to be able to use JsonSerializerSettings but I cant find a way of being able to configure this for the results that are returned as per the example above.
azure json.net azure-functions
Have you tried JsonResult with JsonSerializerSettings?
– Jerry Liu
Nov 13 '18 at 5:28
JsonResult with JsonSerialiserSettings could work, but it does not allow setting of the status code or additional response headers out of the box. Ideally I could set up the responsibility of Json formatting elsewhere. If this was an MVC app it would be simple. Function Apps seem to give me ALOT less control with many fewer extension hooks.
– Mark W
Nov 13 '18 at 8:42
There is a (closed) issue on the AzureFunctions repo in Github where someone described how to do that by creating a response from the HttpRequest object. github.com/Azure/Azure-Functions/issues/298
– Sebastian Achatz
Nov 13 '18 at 10:42
Thanks @SebastianAchatz. I may well have to do something like that. Its a shame there is no way to hook into the function response after it leaves the static function method. I will probably end up creating something that can map all ObjectResult to JsonResult, just to use the override that allows me to set JsonSerializerSettings .
– Mark W
Nov 13 '18 at 10:54
After more looking around I think this kind of scenario may be addressed in an iminent release of the Azure Function SDK/API. Dependency Injection is coming soon - hopefully the Azure functions team will take the opportunity to expose the WebJobs pipeline extensions which would make this achievable.
– Mark W
Nov 13 '18 at 14:30
add a comment |
I want to be able to control how json is formatted when I return a content result from a Azure Function (V2). The following is a simplified version of what I am doing:
[FunctionName("CreateThing")]
public static async Task<IActionResult> CreateThingAsync([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "thing")]HttpRequest req, ILogger log)
try
var result = await GetResultAsync(req);
return new CreatedResult($"thing/result.id", result);
catch(ErrorException)
return new BadRequestObjectResult(e.Error);
Is there a way to control how the results are formatted when they are returned, without using attributes on my models? I want to be able to use JsonSerializerSettings but I cant find a way of being able to configure this for the results that are returned as per the example above.
azure json.net azure-functions
I want to be able to control how json is formatted when I return a content result from a Azure Function (V2). The following is a simplified version of what I am doing:
[FunctionName("CreateThing")]
public static async Task<IActionResult> CreateThingAsync([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "thing")]HttpRequest req, ILogger log)
try
var result = await GetResultAsync(req);
return new CreatedResult($"thing/result.id", result);
catch(ErrorException)
return new BadRequestObjectResult(e.Error);
Is there a way to control how the results are formatted when they are returned, without using attributes on my models? I want to be able to use JsonSerializerSettings but I cant find a way of being able to configure this for the results that are returned as per the example above.
azure json.net azure-functions
azure json.net azure-functions
edited Nov 13 '18 at 7:59
Mark W
asked Nov 12 '18 at 15:06
Mark WMark W
325314
325314
Have you tried JsonResult with JsonSerializerSettings?
– Jerry Liu
Nov 13 '18 at 5:28
JsonResult with JsonSerialiserSettings could work, but it does not allow setting of the status code or additional response headers out of the box. Ideally I could set up the responsibility of Json formatting elsewhere. If this was an MVC app it would be simple. Function Apps seem to give me ALOT less control with many fewer extension hooks.
– Mark W
Nov 13 '18 at 8:42
There is a (closed) issue on the AzureFunctions repo in Github where someone described how to do that by creating a response from the HttpRequest object. github.com/Azure/Azure-Functions/issues/298
– Sebastian Achatz
Nov 13 '18 at 10:42
Thanks @SebastianAchatz. I may well have to do something like that. Its a shame there is no way to hook into the function response after it leaves the static function method. I will probably end up creating something that can map all ObjectResult to JsonResult, just to use the override that allows me to set JsonSerializerSettings .
– Mark W
Nov 13 '18 at 10:54
After more looking around I think this kind of scenario may be addressed in an iminent release of the Azure Function SDK/API. Dependency Injection is coming soon - hopefully the Azure functions team will take the opportunity to expose the WebJobs pipeline extensions which would make this achievable.
– Mark W
Nov 13 '18 at 14:30
add a comment |
Have you tried JsonResult with JsonSerializerSettings?
– Jerry Liu
Nov 13 '18 at 5:28
JsonResult with JsonSerialiserSettings could work, but it does not allow setting of the status code or additional response headers out of the box. Ideally I could set up the responsibility of Json formatting elsewhere. If this was an MVC app it would be simple. Function Apps seem to give me ALOT less control with many fewer extension hooks.
– Mark W
Nov 13 '18 at 8:42
There is a (closed) issue on the AzureFunctions repo in Github where someone described how to do that by creating a response from the HttpRequest object. github.com/Azure/Azure-Functions/issues/298
– Sebastian Achatz
Nov 13 '18 at 10:42
Thanks @SebastianAchatz. I may well have to do something like that. Its a shame there is no way to hook into the function response after it leaves the static function method. I will probably end up creating something that can map all ObjectResult to JsonResult, just to use the override that allows me to set JsonSerializerSettings .
– Mark W
Nov 13 '18 at 10:54
After more looking around I think this kind of scenario may be addressed in an iminent release of the Azure Function SDK/API. Dependency Injection is coming soon - hopefully the Azure functions team will take the opportunity to expose the WebJobs pipeline extensions which would make this achievable.
– Mark W
Nov 13 '18 at 14:30
Have you tried JsonResult with JsonSerializerSettings?
– Jerry Liu
Nov 13 '18 at 5:28
Have you tried JsonResult with JsonSerializerSettings?
– Jerry Liu
Nov 13 '18 at 5:28
JsonResult with JsonSerialiserSettings could work, but it does not allow setting of the status code or additional response headers out of the box. Ideally I could set up the responsibility of Json formatting elsewhere. If this was an MVC app it would be simple. Function Apps seem to give me ALOT less control with many fewer extension hooks.
– Mark W
Nov 13 '18 at 8:42
JsonResult with JsonSerialiserSettings could work, but it does not allow setting of the status code or additional response headers out of the box. Ideally I could set up the responsibility of Json formatting elsewhere. If this was an MVC app it would be simple. Function Apps seem to give me ALOT less control with many fewer extension hooks.
– Mark W
Nov 13 '18 at 8:42
There is a (closed) issue on the AzureFunctions repo in Github where someone described how to do that by creating a response from the HttpRequest object. github.com/Azure/Azure-Functions/issues/298
– Sebastian Achatz
Nov 13 '18 at 10:42
There is a (closed) issue on the AzureFunctions repo in Github where someone described how to do that by creating a response from the HttpRequest object. github.com/Azure/Azure-Functions/issues/298
– Sebastian Achatz
Nov 13 '18 at 10:42
Thanks @SebastianAchatz. I may well have to do something like that. Its a shame there is no way to hook into the function response after it leaves the static function method. I will probably end up creating something that can map all ObjectResult to JsonResult, just to use the override that allows me to set JsonSerializerSettings .
– Mark W
Nov 13 '18 at 10:54
Thanks @SebastianAchatz. I may well have to do something like that. Its a shame there is no way to hook into the function response after it leaves the static function method. I will probably end up creating something that can map all ObjectResult to JsonResult, just to use the override that allows me to set JsonSerializerSettings .
– Mark W
Nov 13 '18 at 10:54
After more looking around I think this kind of scenario may be addressed in an iminent release of the Azure Function SDK/API. Dependency Injection is coming soon - hopefully the Azure functions team will take the opportunity to expose the WebJobs pipeline extensions which would make this achievable.
– Mark W
Nov 13 '18 at 14:30
After more looking around I think this kind of scenario may be addressed in an iminent release of the Azure Function SDK/API. Dependency Injection is coming soon - hopefully the Azure functions team will take the opportunity to expose the WebJobs pipeline extensions which would make this achievable.
– Mark W
Nov 13 '18 at 14:30
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53264940%2fazure-functions-2-how-to-control-json-serialization-settings%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53264940%2fazure-functions-2-how-to-control-json-serialization-settings%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Have you tried JsonResult with JsonSerializerSettings?
– Jerry Liu
Nov 13 '18 at 5:28
JsonResult with JsonSerialiserSettings could work, but it does not allow setting of the status code or additional response headers out of the box. Ideally I could set up the responsibility of Json formatting elsewhere. If this was an MVC app it would be simple. Function Apps seem to give me ALOT less control with many fewer extension hooks.
– Mark W
Nov 13 '18 at 8:42
There is a (closed) issue on the AzureFunctions repo in Github where someone described how to do that by creating a response from the HttpRequest object. github.com/Azure/Azure-Functions/issues/298
– Sebastian Achatz
Nov 13 '18 at 10:42
Thanks @SebastianAchatz. I may well have to do something like that. Its a shame there is no way to hook into the function response after it leaves the static function method. I will probably end up creating something that can map all ObjectResult to JsonResult, just to use the override that allows me to set JsonSerializerSettings .
– Mark W
Nov 13 '18 at 10:54
After more looking around I think this kind of scenario may be addressed in an iminent release of the Azure Function SDK/API. Dependency Injection is coming soon - hopefully the Azure functions team will take the opportunity to expose the WebJobs pipeline extensions which would make this achievable.
– Mark W
Nov 13 '18 at 14:30