• This repository has been archived on 15/Sep/2022
  • Stars
    star
    104
  • Rank 318,826 (Top 7 %)
  • Language
    Scala
  • Created about 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Swagger support for scala

Archived

This project is no longer supported

Swagger Scala Module

Build Status Maven Central

The goal of Swaggerโ„ข is to define a standard, language-agnostic interface to REST APIs which allows both humans and computers to discover and understand the capabilities of the service without access to source code, documentation, or through network traffic inspection. When properly defined via Swagger, a consumer can understand and interact with the remote service with a minimal amount of implementation logic. Similar to what interfaces have done for lower-level programming, Swagger removes the guesswork in calling the service.

Swagger-scala-module is a pure scala module for use with the swagger framework.

Check out Swagger-Spec for additional information about the Swagger project, including additional libraries with support for SpringMVC, other languages and more.

See the Wiki!

The github wiki contains documentation, samples, etc. Start there.

Compatibility

This project is compatible with swagger-core 1.5.x or greater.

Usage

To enable the swagger-scala-module, include the appropriate version in your project:

  "io.swagger" %% "swagger-scala-module" % "1.0.7-SNAPSHOT"

Which will include the proper cross-publish version of swagger-scala-module.

How does it work?

Including the library in your project allows the swagger extension module to discover this module, bringing in the appropriate jackson library in the process. You can then use scala classes and objects in your swagger project.

Treatment of Option and required

All properties, besides those wrapped in Option or explicitly set via annotations @ApiModelProperty(required = false), default to required = true in the generated swagger model. See #7

How to hide model properties

@ApiModelProperty(hidden = true) does not work because Scala generates a field and a getter for public properties. The annotation will hide the getter, but the field of the same name will still be visible.

To hide the property, instruct the Scala compiler to annotate both the field and the getter:

import io.swagger.annotations.{ApiModel, ApiModelProperty}
import scala.annotation.meta.{field,getter}

@ApiModel
case class Foo(
  @ApiModelProperty(value = "This will not be hidden!", hidden = true)
  stillVisible: Int,

  @(ApiModelProperty @field @getter)(value = "A hidden property", hidden = true)
  actuallyHidden: String
)

Support

The following methods are available to obtain support for Swagger:

  • The Swagger Google Group - This would normally be your first stop to get support for Swagger. Here you can find previously asked question, and ask new ones. When asking a question, please provide as much information as you can regarding the environment you use (development language, library, versions.
  • The Issues tab - Please open feature requests and bugs here. If you're not sure you encountered a bug, or if it's a general usage question, please use the Google Group mentioned above.
  • IRC! you can find us on freenode in the channel #Swagger. You can talk with us directly there.

Get started with Swagger!

See the guide on getting started with swagger to get started with adding swagger to your API.

To build from source

sbt publishLocal

Security contact

Please disclose any security-related issues or vulnerabilities by emailing [email protected], instead of using the public issue tracker.

License

Copyright 2016 SmartBear Software, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


More Repositories

1

swagger-ui

Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
JavaScript
25,331
star
2

swagger-codegen

swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.
Mustache
16,413
star
3

swagger-editor

Swagger Editor
JavaScript
8,614
star
4

swagger-core

Examples and server integrations for generating the Swagger API Specification, which enables easy access to your REST API
Java
7,323
star
5

swagger-node

Swagger module for node.js
JavaScript
3,970
star
6

swagger-js

Javascript library to connect to swagger-enabled APIs via browser or nodejs
JavaScript
2,574
star
7

swagger.io

The content of swagger.io
1,548
star
8

swagger-parser

Swagger Spec to Java POJOs
Java
744
star
9

swagger-samples

Samples for the various Swagger projects under swagger-api
JavaScript
536
star
10

swagger-socket

Swagger Socket: A REST over WebSocket
Java
381
star
11

swagger-play

Java
329
star
12

swagger-codegen-generators

Mustache
277
star
13

swagger-petstore

Java
214
star
14

validator-badge

Validate your Swagger JSON/YAML today!
Java
201
star
15

swagger-inflector

Java
160
star
16

swagger-converter

OpenAPI/Swagger 2.0 to OpenAPI 3.0 Converter WebService
Python
97
star
17

apidom

Semantic parser for API specifications
TypeScript
55
star
18

swaggerhub-maven-plugin

A simple maven plugin to access SwaggerHub hosting of OpenAPI/Swagger from a maven build process.
Java
30
star
19

swagger-play-sample-app

A sample play app which uses swagger plugin to make the age old pet store swagger compliant.
JavaScript
29
star
20

rails-petstore

Ruby
29
star
21

swagger2

For working out the Swagger 2 working group page
CSS
23
star
22

swaggerhub-gradle-plugin

Gradle plugin for SwaggerHub
Java
20
star
23

scalatra-sample-app

Shell
20
star
24

swagger-scala-sample-app

A fully-functioning, stand-alone Swagger server written in scala which demonstrates how to enable Swagger in your API.
Scala
20
star
25

swagger-form-editor

JavaScript
19
star
26

petstore-kafka

A demo site built on top of Kafka topics
JavaScript
14
star
27

swagger-async-httpclient

Scala
10
star
28

swagger-editor-cra

This is forked Create React App that builds SwaggerEditor@5
JavaScript
9
star
29

swagger-scala

Scala
8
star
30

swagger-play-1.2

Scala
8
star
31

swagger-schema-packaging

6
star
32

apidom-lsp-vscode

ApiDOM VS Code Extension
TypeScript
5
star
33

sway-worker

4
star
34

apidom-ls-client

Demo client for apidom-ls OpenAPI / AsyncAPI ApiDOM validation service
TypeScript
3
star
35

.github

Common Github files for the Swagger projects
3
star
36

swagger-codegen-test

2
star