# README

Zally - Zalando's API Linter loves you
Minimalistic API linter of awesomeness, bringing order to a sea of APIs.
- Ensures API definitions conform to our standard REST guidelines.
- Does not require a deployed service, only an API definition.
- Accepts swagger yaml and json formats.
- Easy-to-use CLI allows you to check your API right now.
- Web UI provides an intuitive web interface with tons of features.
Core Technical Concepts
- Parses swagger files using swagger-parser
- Written in Java 8 with Spring Boot
- Zally comes with a server which lints your swagger files
- Zally CLI is handy command-line tool, it uses the server in the background
- Zally Web UI is another client build on top of React and Node.js
- Rule changes only have to be applied in the server component
Tech Stack: Zally server is written in Java 8 with Spring Boot. We made rule implementation optional possible in Kotlin. API-specific code remains in Java 8 due to better integration with Spring Boot. Further details can be found here. With Spring 5 we consider using Kotlin also on API side directly. Zally CLI is implemented in Golang.
Dependencies
- Java 8 (Server)
- Golang 1.7+ (CLI)
- Node.js 7.6+ (Web-UI)
Installation and Usage
You can find installation steps in the Server Readme, CLI Readme and Web UI Readme.
If you just wanna try it out: first run the server locally, then just use the CLI tool as it is provided.
Roadmap
For version 1.2 we focus on these main areas:
- Consistency with Zalando RESTful API Guidelines
- Referential integrity with Zalando RESTful API Guidelines
- New rules
- New quick start script and better integration testing approaches
Feel free to contribute on related issues for version 1.2.
Quick start guide
git clone [email protected]:zalando-incubator/zally.git zally
cd zally
# Disable authentication and start a local version of Zally server
cd server
./gradlew clean build
./gradlew bootRun > /dev/null &
cd ..
# Build CLI tool
go get github.com/zalando-incubator/zally/cli/zally
cd $GOPATH/src/github.com/zalando-incubator/zally/cli/zally
go build
./zally lint /path/to/swagger/definition.yaml
Contributing
We are happy to accept contributions. First, take a look at our contributing guidelines.
Please check our Project Board or Issues Page for contribution ideas.
Contact
Feel free to contact one the maintainers
License
MIT license with an exception. See license file.