GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — feat: add support for schema keywords by cowboy-bebug · Pull Request #2162 · oapi-codegen/oapi-codegen

Conversation

@cowboy-bebug

@cowboy-bebug cowboy-bebug commented Nov 19, 2025 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

Hi there 👋

I use the tool extensively at work and thought it'd be really great to generate some consts based on the JSON schema keywords.

This PR adds features to handle the keywords such as minimum, maximum, etc.:

paths:
  /users:
    get:
      operationId: listUsers
      summary: List users with pagination and filtering
      description: Demonstrates inline parameter constraints generating constants
      parameters:
        - in: query
          name: limit
          description: Maximum number of items to return
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20

components:
  schemas:
    Username:
      type: string
      minLength: 3
      maxLength: 20
      default: "guest"

as constants:

// Constraint constants for ListUsersLimit.
const (
	ListUsersLimitMinimum int = 1
	ListUsersLimitMaximum int = 100
	ListUsersLimitDefault int = 20
)

// Constraint constants for Username.
const (
	UsernameDefault   string = "guest"
	UsernameMinLength uint64 = 3
	UsernameMaxLength uint64 = 20
)

I didn't find any relevant / related issues. Let me know if this is something valuable to you guys as well 🙏

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@cowboy-bebug
cowboy-bebug requested a review from a team as a code owner November 19, 2025 07:17
@github-actions github-actions Bot added the auto:no-head-branch label Nov 19, 2025
@cowboy-bebug
cowboy-bebug force-pushed the main branch from ba8e675 to c9ea80c Compare November 19, 2025 07:55
cowboy-bebug added 6 commits February 12, 2026 10:15
@cowboy-bebug
feat(codegen): add ConstraintDefinition for schema
c877a75
@cowboy-bebug
feat(codegen): add GenerateConstraints() for codegen
8fdec9c
@cowboy-bebug
feat(codegen): update constants template for constraints
be34fa1
@cowboy-bebug
feat(example): add an example for constraints
044f90b
@cowboy-bebug
feat(internal/test): make generate
e5bb9cb
@cowboy-bebug
feat: add support for parameter schema
e8ea0d6
@cowboy-bebug
cowboy-bebug force-pushed the main branch from c9ea80c to e8ea0d6 Compare February 11, 2026 21:16
@cowboy-bebug

cowboy-bebug commented Feb 11, 2026

Copy link
Copy Markdown
Author

Hi @jamietanna, just a quick ping on this PR. I’ve been using this locally for a few weeks and it significantly simplifies marrying request validation with the spec file.

I realized this wasn't in the issues list yet, but it feels like a quality of life improvement that would benefit anyone manually adding min/max constants in application.

I've made sure to include tests and documentation to keep the maintenance burden as low as possible for you.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

auto:no-head-branch

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@cowboy-bebug
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.