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

Java 11 native HTTP client library

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge github/fork/bbdouglas/native_httpclient into master Jul 24, 2019
  • Overview 0
  • Commits 3
  • Pipelines 0
  • Changes 190

Created by: bbdouglas

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, ./bin/openapi3/{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\. If contributing template-only or documentation-only changes which will change sample output, be sure to build the project first.
  • Filed the PR against the correct branch: master, 4.1.x, 5.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

This is a set of mustache templates to create a new Java library called "native" that is backed by the standard Java 11 HTTPClient class.

The majority of files are only lightly edited from the default Java templates. The model classes, for example, are entirely untouched. The main two edits are:

  • APIClient.mustache
  • api.mustache

It follows the pattern used by Jersey, where the APIClient acts as a mechanism for configuring the clients along with a small repository of utility functions. The individual api classes are created from the settings and helper classes held by the APIClient, and are immutable and thread-safe. Object serialization/deserialization is handled by Jackson, as is common in the other libraries.

We at Yelp currently use these templates to generate clientlibs used in our production microservices architecture. This library lacks some of the features seen in other openapi-generator libraries, but represents a fully functional subset for our use case. Additional features could be added on as needed. Here is a summary of the limitations of the current clientlibs:

  • No Validation
  • No Auth
  • No HTML Forms
  • Only native Java dates
  • Only application/json mimetype

resolves #3433 (closed)

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/bbdouglas/native_httpclient