Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Merge requests
  • !12164

Support snake_case path parameters and fix path building with base URL

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Administrator requested to merge github/fork/justinjxzhang/az-func-snake-case-base-path into master Apr 18, 2022
  • Overview 0
  • Commits 1
  • Pipelines 1
  • Changes 1

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
    Commit all changed files. This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master. These must match the expectations made by your contribution. You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./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.
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/justinjxzhang/az-func-snake-case-base-path