IndiscriminateCoding / Api4s

Licence: bsd-3-clause
Derive Scala code for your HTTP API from swagger!

Programming Languages

scala
5932 projects

Labels

Projects that are alternatives of or similar to Api4s

Swagger Codegen Play Scala
Swagger client generator which is based on the PlayWS library
Stars: ✭ 9 (-75.68%)
Mutual labels:  swagger
Swagger2
Loading, parsing and validating requests to HTTP services based on Swagger v2.0 documents
Stars: ✭ 20 (-45.95%)
Mutual labels:  swagger
Openapi To Graphql
Translate APIs described by OpenAPI Specifications (OAS) into GraphQL
Stars: ✭ 973 (+2529.73%)
Mutual labels:  swagger
Widdershins
OpenAPI / Swagger, AsyncAPI & Semoasa definitions to (re)Slate compatible markdown
Stars: ✭ 856 (+2213.51%)
Mutual labels:  swagger
Swagger Editor
Swagger Editor
Stars: ✭ 7,365 (+19805.41%)
Mutual labels:  swagger
Fastapi
FastAPI framework, high performance, easy to learn, fast to code, ready for production
Stars: ✭ 39,588 (+106894.59%)
Mutual labels:  swagger
Springbootunity
rabbitmq、redis、scheduled、socket、mongodb、Swagger2、spring data jpa、Thymeleaf、freemarker etc. (muti module spring boot project) (with spring boot framework,different bussiness scence with different technology。)
Stars: ✭ 845 (+2183.78%)
Mutual labels:  swagger
Play26 Swagger Reactivemongo
A fully featured CRUD app built with Play 2.6, Swagger and ReactiveMongo
Stars: ✭ 36 (-2.7%)
Mutual labels:  swagger
Oval
oval: CLI for (O)penAPI Specification document (val)idation.
Stars: ✭ 15 (-59.46%)
Mutual labels:  swagger
Suave.swagger
This is an extension for Suave.io with some REST tools and Swagger documentation helpers
Stars: ✭ 34 (-8.11%)
Mutual labels:  swagger
Oaichecker
Test your OpenAPI specs and your server API at the same time
Stars: ✭ 12 (-67.57%)
Mutual labels:  swagger
Spectral
A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI v2 & v3.
Stars: ✭ 876 (+2267.57%)
Mutual labels:  swagger
Swagger Ui Cimpress
A swagger-ui fork with an easy to read, responsive three pane view.
Stars: ✭ 32 (-13.51%)
Mutual labels:  swagger
Swagger Editor Electron
Run standalone Swagger Editor in Electron shell
Stars: ✭ 10 (-72.97%)
Mutual labels:  swagger
Paw Swaggerimporter
Swagger/OpenAPI 2.0 Importer for Paw
Stars: ✭ 34 (-8.11%)
Mutual labels:  swagger
Swagger Core
Examples and server integrations for generating the Swagger API Specification, which enables easy access to your REST API
Stars: ✭ 6,898 (+18543.24%)
Mutual labels:  swagger
Ruoyi
(RuoYi)官方仓库 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用
Stars: ✭ 905 (+2345.95%)
Mutual labels:  swagger
Go Starter
An opinionated production-ready SQL-/Swagger-first RESTful JSON API written in Go, highly integrated with VSCode DevContainers by allaboutapps.
Stars: ✭ 37 (+0%)
Mutual labels:  swagger
Blogmanageplatform
一个springboot项目的脚手架,追求简洁高速可扩展。
Stars: ✭ 34 (-8.11%)
Mutual labels:  swagger
Rolodex
📇API Documentation Generator for Phoenix
Stars: ✭ 34 (-8.11%)
Mutual labels:  swagger

api4s - HTTP API in Scala

Description

Document your HTTP API with swagger and generate Scala code from it.

Uses http4s and circe for autogenerated code.

Usage

The simplest way to use this library is via sbt plugin. Add following line to project/plugins.sbt:

addSbtPlugin("com.github.IndiscriminateCoding" % "api4s-sbt" % "0.2.6")

Also you need to enable plugin usage in build.sbt:

lazy val root = (project in file("."))
  .enablePlugins(Api4s)
  .settings(
    libraryDependencies += "com.github.IndiscriminateCoding" %% "api4s-core" % "0.2.6",
    api4sSources := Seq(Api4s.Src(
      file = sourceDirectory.value / "main" / "swagger" / "my-specification.yaml",
      pkg = "com.example",
      server = true,
      client = true
    ))
  )

At this point you can just compile your project and see what is generated by plugin.

Detailed example is here.

Limitations

  • No OpenAPI 3.0 support at this moment; only swagger is supported
  • Specifications in JSON format isn't supported; use YAML instead
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].