Code Monkey home page Code Monkey logo

zally's Introduction

Zally: A minimalistic, simple-to-use OpenAPI 2 and 3 linter

Latest Release Test Status Build Status

GitHub contributors GitHub License

Zally is a quality assurance tool. It's a linter for OpenAPI specifications, which:

  • Increases the quality of APIs
  • Checks compliance
  • Delivers early feedback for API designers
  • Ensures the same look-and-feel of APIs
  • Supports API-First approach
  • Provides best practices and advices

Its standard configuration will check your APIs against the rules defined in Zalando's RESTful Guidelines, but anyone can use it out-of-the-box.

Zally's easy-to-use CLI uses the server in the background so that you can check your API on the spot. It also features an intuitive Web UI that shows implemented rules and lints external files and (with its online editor) API definitions.

Features

  • Support for OpenAPI 3 and (Swagger) OpenAPI 2 specifications
  • RESTful API, CLI and Web interface
  • Rich Check configuration
  • Ignore functionality (x-zally-ignore extension)
  • Java/Kotlin API for new Checks + helper functions

Quick start guide

Trying out Zally is easy. You can build and run the whole Zally stack (web-ui, server and database) by executing:

./build-and-run.sh

Web UI is accessible on http://localhost:8080; Zally server on http://localhost:8000

Documentation and Manuals

Please consult the following documents for more information:

Contributing

Zally welcomes contributions from the open source community. To get started, take a look at our contributing guidelines. Then check our Project Board and Issues Tracker for ideas.

Roadmap

For Zally version 1.5, we're focusing on:

  • Improve extensibility of Zally
    • Plugin mechanism for Rules (Sets)
    • Utilities and helper functions for Check development
  • Improve quality by introducing a better testing approach for integration tests
  • Make the usage of Zally easier by providing high-quality documentation for
    • End users
    • Check developers
    • Operators and administrators

If you have ideas for these items, please let us know.

Contact

Feel free to join our Gitter room or contact one of the maintainers directly.

Alternatives

Zally is not the only linter for OpenAPI v2 and v3. There is an article comparing different OpenAPI linters.

So why should you choose Zally?

  • It supports Zalando's RESTful Guidelines
  • It can be used in multiple ways: RESTful API, CLI and Web interface
  • Highly customizable (with Kotlin)

License

MIT license with an exception. See license file.

Publish

Prerequisites

Steps

  1. Create a separate branch with a name release-<release-version>.

  2. Update current version in server/gradle.properties from -SNAPSHOT to a final version.

  3. Release Zally server and API using the command

    cd server
    ./gradlew clean build publishAllPublicationsToMavenRepository
    
  4. Commit server/gradle.properties with the release version

  5. Create a tag

    git tag v<release-version> -m "Version <release-version>"
  6. Bump version in server/gradle.properties to the next -SNAPSHOT

  7. Push release branch and tag

     git push origin
     git push origin <tag-name>
  8. Create a Pull Request with the version update

  9. Create and publish a release with a new version in GitHub

zally's People

Contributors

netme avatar maxim-tschumak avatar roxspring avatar fmueller avatar tkrop avatar rbarilani avatar zeitlinger avatar mkulak avatar superbenji avatar vadeg avatar thomas-siegrist avatar thomasabraham avatar akryvko avatar dependabot[bot] avatar bhaskarmelkani avatar maschleg avatar nagogus avatar schlpbch avatar mfellner avatar ishishov avatar tfrauenstein avatar ruiaraujo avatar cjhowald avatar 7databits avatar nehalium avatar ioggstream avatar kingslef avatar bocytko avatar yogendra0sharma avatar vincent-fuchs avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.