https://github.com/usausa/azure-functions-extension
Azure Functions extension.
https://github.com/usausa/azure-functions-extension
azure azure-functions serverless
Last synced: 6 days ago
JSON representation
Azure Functions extension.
- Host: GitHub
- URL: https://github.com/usausa/azure-functions-extension
- Owner: usausa
- License: mit
- Created: 2022-07-09T07:15:51.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-09T09:51:43.000Z (2 months ago)
- Last Synced: 2025-05-02T19:05:46.896Z (18 days ago)
- Topics: azure, azure-functions, serverless
- Language: C#
- Homepage:
- Size: 91.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Azure Functions Extension for .NET
[](https://www.nuget.org/packages/AzureFunctionsExtension/)
## What is this?
Azure Functions extension library.
## Supported features
* Model binding attribute lile [FromQuery], [FromBody]
* System.Text.Json serializer## Binding
### Query binding
* Add [BindQuery] attribute to parameters
* Built-in types and Nullable Built-in types and TypeDescriptor and Array supported```csharp
[FunctionName("Query")]
public IActionResult Query(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "query")] HttpRequest req,
[BindQuery] int a,
[BindQuery] int? b,
[BindQuery] int c = 3)
{
return Results.Of(new QueryResponse
{
Result = a + (b ?? 0) + c
});
}[FunctionName("Array")]
public IActionResult Array(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "array")] HttpRequest req,
[BindQuery] int[] a,
[BindQuery] int?[] b)
{
return Results.Of(new QueryResponse
{
Result = a.Sum() + b.Sum(x => x ?? 0)
});
}
```### Body binding
* Add [BindBody] attribute to parameters
* Serialize Body using System.Text.Json```csharp
[FunctionName("Body")]
public IActionResult Body(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = "body")] HttpRequest req,
[BindBody] BodyRequest request)
{
return Results.Of(new BodyResponse
{
Id = request.Id,
Name = request.Name
});
}
``````csharp
public class BodyRequest
{
public int Id { get; set; }public string Name { get; set; }
}
```## System.Text.Json serializer
### IActionResult
* SystemTextJsonResult action result
* Results helper class```csharp
return new SystemTextJsonResult(response);
``````csharp
// if response is null return NotFoundResult, response is not null return SystemTextJsonResult
return Results.Of(response);
```### Configuration
* Use AddAzureFunctionExtension() method to configure
```csharp
public sealed class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.AddAzureFunctionExtension(c =>
{
c.Options.Converters.Add(new DateTimeConverter());
});
}
}
```