All Downloads are FREE. Search and download functionalities are using the official Maven repository.

endpoints4s.openapi.JsonEntities.scala Maven / Gradle / Ivy

There is a newer version: 5.0.1
Show newest version
package endpoints4s.openapi

import endpoints4s.openapi.model.MediaType
import endpoints4s.algebra

/** Partial interpreter for [[algebra.JsonEntities]].
  *
  * This interpreter documents that entities have a JSON content type, but
  * it can not document the schemas of these entities. See [[algebra.JsonEntitiesFromSchemas]]
  * for this purpose.
  *
  * @group interpreters
  */
trait JsonEntities extends algebra.JsonEntities with EndpointsWithCustomErrors {

  def jsonRequest[A: JsonRequest]: RequestEntity[A] =
    Map("application/json" -> MediaType(None))

  def jsonResponse[A: JsonResponse]: ResponseEntity[A] =
    Map("application/json" -> MediaType(None))

}

/** Interpreter for [[algebra.JsonEntitiesFromSchemas]] that produces a documentation of the JSON schemas.
  *
  * @group interpreters
  */
trait JsonEntitiesFromSchemas
    extends algebra.JsonEntitiesFromSchemas
    with EndpointsWithCustomErrors
    with JsonSchemas {

  def jsonRequest[A](implicit codec: JsonSchema[A]) =
    Map("application/json" -> MediaType(Some(toSchema(codec.docs))))

  def jsonResponse[A](implicit codec: JsonSchema[A]) =
    Map("application/json" -> MediaType(Some(toSchema(codec.docs))))

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy