Open dubinsky opened 2 months ago
I’ve also experienced the same issue as reported.
Update:
I've found a workaround - manually generating the Schema with a simple id.
Example:
given [V <: ValidationStatus]: Schema[CreateItemInput[V]] =
Schema.CaseClass3[String, Money, ProductType, CreateItemInput[V]](
id0 = TypeId.fromTypeName("CreateItemInput"), // <- "simple" id
field01 = Schema.Field(name0 = "name", schema0 = Schema[String], get0 = _.name, set0 = (v, x) => v.copy(name = x)),
field02 =
Schema.Field(name0 = "price", schema0 = Schema[Money], get0 = _.price, set0 = (v, x) => v.copy(price = x)),
field03 = Schema.Field(
name0 = "productType",
schema0 = Schema[ProductType],
get0 = _.productType,
set0 = (v, x) => v.copy(productType = x),
),
construct0 = (name, price, productType) => CreateItemInput[V](name, price, productType),
)
/bounty $150
/attempt #2767
with your implementation plan/claim #2767
in the PR body to claim the bountyThank you for contributing to zio/zio-http!
Add a bounty • Share on socials
Attempt | Started (GMT+0) | Solution |
---|---|---|
🔴 @Anshgrover23 | Jun 14, 2024, 7:20:13 AM | WIP |
hey i have submitted the pr plss check
I think it would be nice if the name generated for openapi be specified with its type parameters (i.e. Data_String) instead of just Data. Systems that consume the openapi json or yaml file could then generate the correct code for different instances of the parameterized type.
@jdegoes This problem is not solvable in a clean way in zio-http. We need to fix this in zio-schema.
typeName
of the id [A]
for the example given in the issue. This is imo just wrong.generics: Map[String, GenericInfo]
where the key is just the generic name (A
here) and case class GenericInfo(implementigSchema: Schema, fieldNames: List[String] )
. I guess field names should be enough to do the mapping where needed, for example to get the schema by finding the field with such name.
Describe the bug
With parameterized case class used as endpoint's output, Open API documentation generator crashes.
To Reproduce Steps to reproduce the behaviour:
(Caused by the fact that
zio.http.endpoint.openapi.OpenAPI.Key.fromString("Data[A]")
returnsNone
.)Expected behaviour I expect correct Open API documentation to be generated, or, at a minimum, no crashes ;)