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
  • !737

C# template refactor

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Jim Schubert requested to merge github/fork/jimschubert/csharp-template-refactor into master Aug 05, 2018
  • Overview 0
  • Commits 9
  • Pipelines 0
  • Changes 229

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
  • Filed the PR against the correct branch: master, 4.0.x. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

A refactoring proof of concept for the C# client.

This puts a client abstraction on top of RestSharp, such that consumers can provide a custom implementation. This is useful for SDK creators who would rather use HttpClient, or consumers who would rather construct APIs with their own solution (e.g. in-house api accessors with tracing and logging applied).

This PR includes only template changes, as generating working C# clients is currently broken on master due to a regression in enum processing (see gist).

I'm opening this for feedback.

To evaluate:

cd samples/client/petstore/csharp-refactor/OpenAPIClient
sh build.sh
csharp -r:bin/Org.OpenAPITools.dll -r:bin/Newtonsoft.Json.dll -r:bin/RestSharp.dll
csharp> using Org.OpenAPITools.Api;
csharp> var api = new PetApi("http://petstore.swagger.io/v2")
csharp> api.GetPetById(2)
class Pet {
  Id: 2
  Category: class Category {
  Id: 1
  Name: feline
}

  Name: catty
  PhotoUrls: System.Collections.Generic.List`1[System.String]
  Tags: System.Collections.Generic.List`1[Org.OpenAPITools.Model.Tag]
  Status: Available
}
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/jimschubert/csharp-template-refactor