问题描述
在 akka-http 中有
//ContentType.scala
val `application/json` = ContentType(MediaTypes.`application/json`)
同样,我如何为
创建一个 ContentTypeapplication/schema+json
application/schema-instance+json
?
参考:
- https://json-schema.org/draft/2019-09/json-schema-core.html
- https://github.com/akka/akka-http/blob/v10.2.3/akka-http-core/src/main/scala/akka/http/scaladsl/model/ContentType.scala#L119
- https://github.com/akka/akka-http/blob/v10.2.3/akka-http-core/src/main/scala/akka/http/scaladsl/model/MediaType.scala#L357-L358
//MediaType.scala
val `application/json` = awfc("json",HttpCharsets.`UTF-8`,"json")
val `application/json-patch+json` = awfc("json-patch+json",HttpCharsets.`UTF-8`)
解决方法
每https://doc.akka.io/docs/akka-http/current/common/http-model.html#registering-custom-media-types
也许是这样的:
object SchemaContentTypes {
val `application/schema+json` = ContentType(SchemaMediaTypes.`application/schema+json`)
val `application/schema-instance+json` = ContentType(SchemaMediaTypes.`application/schema-instance+json`)
}
object SchemaMediaTypes {
val `application/schema+json` =
MediaType.customWithFixedCharset("application","schema+json",HttpCharsets.`UTF-8`,"schema.json")
val `application/schema-instance+json` =
MediaType.customWithFixedCharset("application","schema-instance+json",HttpCharsets.`UTF-8`)
}