Comments (9)
can you be more specific about the following paragraph?
it's only apear when add field
test: Either[Unit, Option[Test2Input]]
seems to me the same field you have on the class above.
from play-swagger.
Yes they looks similar
value: Either[Unit, String],
property: Either[Unit, Option[String]],
dateTime: Either[Unit, Option[DateTime]]
but behave different, probably because types used for field above are mapped into default JS
types from standard packages
com/iheart/playSwagger/SwaggerParameterMapper.scala#L21
from play-swagger.
I think this is a bug when type with binary type parameters (in your case Either) is involved. In particular
https://github.com/iheartradio/play-swagger/blob/master/src/main/scala/com/iheart/playSwagger/SwaggerParameterMapper.scala#L11-L12
doesn't handle such high order types properly.
It might take us some time to get to this bug, but any contribution would be highly appreciated.
from play-swagger.
Yes it's extract wrong type name eg. class test.Test2Input]
from play-swagger.
How do you encode a high kinded type with binary type parameter in Json? We can parse a value to an Either
for sure, but I am not sure how to express it as a swagger schema (like property left and property right?). @joprice any ideas?
from play-swagger.
I have the same problem with a Map[String, Set[B]]:
final case class PlotPoint(left: BigDecimal, right: BigDecimal)
final case class ScatterPlot(data: Map[String, Set[PlotPoint]])
With exception
[info] - Swagger - swagger spec exposed *** FAILED ***
[info] scala.ScalaReflectionException: class io.timeli.sdk.MeasurementsSDK.PlotPoint] in JavaMirror with sun.misc.Launcher$AppClassLoader@573fd745 of type class sun.misc.Launcher$AppClassLoader with classpath [...] not found.
[info] at scala.reflect.internal.Mirrors$RootsBase.staticClass(Mirrors.scala:123)
[info] at scala.reflect.internal.Mirrors$RootsBase.staticClass(Mirrors.scala:22)
[info] at com.iheart.playSwagger.DefinitionGenerator.definition(DefinitionGenerator.scala:44)
[info] at com.iheart.playSwagger.DefinitionGenerator.com$iheart$playSwagger$DefinitionGenerator$$allReferredDefs$1(DefinitionGenerator.scala:57)
[info] at com.iheart.playSwagger.DefinitionGenerator$$anonfun$com$iheart$playSwagger$DefinitionGenerator$$allReferredDefs$1$1.apply(DefinitionGenerator.scala:65)
[info] at com.iheart.playSwagger.DefinitionGenerator$$anonfun$com$iheart$playSwagger$DefinitionGenerator$$allReferredDefs$1$1.apply(DefinitionGenerator.scala:64)
[info] at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:124)
[info] at scala.collection.immutable.List.foldLeft(List.scala:84)
[info] at com.iheart.playSwagger.DefinitionGenerator.com$iheart$playSwagger$DefinitionGenerator$$allReferredDefs$1(DefinitionGenerator.scala:64)
[info] at com.iheart.playSwagger.DefinitionGenerator$$anonfun$allDefinitions$1.apply(DefinitionGenerator.scala:71)
[info] ...
from play-swagger.
as of now, play-swagger does not understand type with multiple type parameters. One option is to use custom type mapping https://github.com/iheartradio/play-swagger#how-to-override-type-mappings
from play-swagger.
Can anyone involved in this discussion has figured out a way to define a working custom mapping override for this example:
final case class ScatterPlot(data: Map[String, PlotPoint])
?
from play-swagger.
For swagger v3, you can express Either
in a straightforward manner using the oneOf
descriminator
from play-swagger.
Related Issues (20)
- Request parameters not visible in Swagger ui
- Open API spec generated is incorrect
- Swagger generating type zoneddatetime in the swagger json
- Support for Optional in schemas
- Swagger Custom Mappings not working with multiples parameters HOT 1
- array[byte] transforms to array-byte .Must transform string
- Swagger-ui compatibility HOT 4
- How to request a release? HOT 2
- Which PLAY versions must be supported? HOT 2
- Please release 0.11.0 HOT 2
- Allow passing classloader to DefinitionGenerator HOT 1
- Definitions description based on Scaladoc HOT 2
- Please Release 0.13.0
- Reusable enums are not working HOT 1
- Skip routes w/ no Swagger Spec comment HOT 1
- java.util.zip.ZipException: duplicate entry: public/swagger.json HOT 1
- Support Scala 3 HOT 2
- Wildcard matching for `swaggerDomainNameSpaces` HOT 1
- [Urgent] Deployment Failures of This Repository Since April. HOT 4
- Remove Swagger Json from Public Folder HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from play-swagger.