Closed dubinsky closed 3 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 |
🟢 @987Nabil | #3022 |
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.💡 @987Nabil submitted a pull request that claims the bounty. You can visit your bounty board to reward.
🎉🎈 @987Nabil has been awarded $150! 🎈🎊
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 ;)