Skip to content

pattern & regex validation is broken. #879

@usr-9b

Description

@usr-9b

pattern and regex validation struct tags is not work properly

Image Image

https://huma.rocks/features/request-validation/#validation-tags
broken code example:

package main

import (
	"context"
	"net/http"

	"github.com/danielgtaylor/huma/v2"
	"github.com/danielgtaylor/huma/v2/adapters/humachi"
	"github.com/go-chi/chi/v5"
)

type Input struct {
	Body struct {
		TestString  string `json:"test_string" pattern:"[a-z]+"`
		TestString2 string `json:"test_string2" regex:"[a-z]+"`
	}
}

type Output struct {
	Body struct {
		String1 string `json:"string1"`
		String2 string `json:"string2"`
	}
}

func main() {
	router := chi.NewRouter()
	api := humachi.New(router, huma.DefaultConfig("My API", "1.0.0"))

	huma.Register(api, huma.Operation{
		OperationID: "test-endpoint",
		Method:      http.MethodPost,
		Path:        "/test",
		Summary:     "test",
	}, func(ctx context.Context, input *Input) (*Output, error) {
		return &Output{
			Body: struct {
				String1 string `json:"string1"`
				String2 string `json:"string2"`
			}{
				String1: input.Body.TestString,
				String2: input.Body.TestString2,
			},
		}, nil
	})

	http.ListenAndServe(":8080", router)
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions