Created by: justinjxzhang
The parameter named in a route must have the same name as the variable for an Azure Function HttpTrigger, otherwise it won't bind properly. The current master
csharp-netcore-functions
generator will will camelize the bound parameter but leave the parameter in the path as snake_case.
Also resolves an issue when a base server URL is provided with a forward-slash going missing.
For example, given the following schema:
openapi: 3.0.0
info:
description: Example underscored path
title: Underscore Path Parameter example
version: 1.0.0
servers:
- url: /api/v1
paths:
/accounts/{account_id}:
get:
parameters:
- description: Get by ID
name: account_id
in: path
required: true
schema:
type: string
responses:
200:
description: Eerything OK
content:
application/json:
schema:
type: object
The csharp-netcore-functions
generator would produce:
public partial class DefaultApi
{
[FunctionName("DefaultApi_AccountsAccountIdGet")]
public async Task<IActionResult> _AccountsAccountIdGet([HttpTrigger(AuthorizationLevel.Anonymous, "Get", Route = "api/v1accounts/{account_id}")]HttpRequest req, ExecutionContext context, string accountId)
{
var method = this.GetType().GetMethod("AccountsAccountIdGet");
return method != null
? (await ((Task<IActionResult>)method.Invoke(this, new object[] { req, context, accountId })).ConfigureAwait(false))
: new StatusCodeResult((int)HttpStatusCode.NotImplemented);
}
}
PR checklist
-
Read the contribution guidelines. -
Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community. -
Run the following to build the project and update samples: ./mvnw clean package ./bin/generate-samples.sh ./bin/utils/export_docs_generators.sh
./bin/generate-samples.sh bin/configs/java*
. For Windows users, please run the script in Git BASH. -
If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.