All Projects → rest-control → Rest Control

rest-control / Rest Control

Licence: mit
Framework for testing and validation REST services

Projects that are alternatives of or similar to Rest Control

Magic
Create your .Net Core/Angular/Database CRUD Web apps by simply clicking a button
Stars: ✭ 214 (+319.61%)
Mutual labels:  api, rest-api, rest, framework
Networking
⚡️ Elegantly connect to a REST JSON Api. URLSession + Combine + Decodable + Generics = <3
Stars: ✭ 499 (+878.43%)
Mutual labels:  api, rest-api, rest
Zerocode
A community-developed, free, open source, microservices API automation and load testing framework built using JUnit core runners for Http REST, SOAP, Security, Database, Kafka and much more. Zerocode Open Source enables you to create, change, orchestrate and maintain your automated test cases declaratively with absolute ease.
Stars: ✭ 482 (+845.1%)
Mutual labels:  api, rest, framework
Apidoc
RESTful API 文档生成工具,支持 Go、Java、Swift、JavaScript、Rust、PHP、Python、Typescript、Kotlin 和 Ruby 等大部分语言。
Stars: ✭ 785 (+1439.22%)
Mutual labels:  api, rest-api, rest
Larapi
An API-friendly fork of Laravel. Authentication, error handling, resource filtering, sorting, pagination and much more included
Stars: ✭ 397 (+678.43%)
Mutual labels:  api, rest-api, framework
Gearbox
Gearbox ⚙️ is a web framework written in Go with a focus on high performance
Stars: ✭ 455 (+792.16%)
Mutual labels:  api, rest, framework
Rest Api Nodejs Mongodb
A boilerplate for REST API Development with Node.js, Express, and MongoDB
Stars: ✭ 672 (+1217.65%)
Mutual labels:  api, rest-api, rest
Comet
Modern PHP framework for building blazing fast REST APIs, CRUDs and microservices
Stars: ✭ 328 (+543.14%)
Mutual labels:  api, rest-api, framework
Deno Drash
A REST microframework for Deno's HTTP server with zero 3rd party dependencies.
Stars: ✭ 795 (+1458.82%)
Mutual labels:  api, rest, framework
Goyave
🍐 Elegant Golang REST API Framework
Stars: ✭ 811 (+1490.2%)
Mutual labels:  api, rest, framework
Generator Http Fake Backend
Yeoman generator for building a fake backend by providing the content of JSON files or JavaScript objects through configurable routes.
Stars: ✭ 49 (-3.92%)
Mutual labels:  api, rest-api, rest
Javacord
An easy to use multithreaded library for creating Discord bots in Java.
Stars: ✭ 368 (+621.57%)
Mutual labels:  api, rest-api, rest
Gramework
Fast and Reliable Golang Web Framework
Stars: ✭ 354 (+594.12%)
Mutual labels:  rest-api, rest, framework
Axios Rest
A simple axios wrapper to make rest api call delightful
Stars: ✭ 41 (-19.61%)
Mutual labels:  api, rest-api, rest
Loopback Next
LoopBack makes it easy to build modern API applications that require complex integrations.
Stars: ✭ 3,972 (+7688.24%)
Mutual labels:  api, rest, framework
Spyke
Interact with REST services in an ActiveRecord-like manner
Stars: ✭ 591 (+1058.82%)
Mutual labels:  api, rest-api, rest
Fastapi
FastAPI framework, high performance, easy to learn, fast to code, ready for production
Stars: ✭ 39,588 (+77523.53%)
Mutual labels:  api, rest, framework
Horse
Fast, opinionated, minimalist web framework for Delphi
Stars: ✭ 295 (+478.43%)
Mutual labels:  api, rest, framework
Kanary
A minimalist web framework for building REST APIs in Kotlin/Java.
Stars: ✭ 319 (+525.49%)
Mutual labels:  api, rest-api, rest
Ngx Restangular
Restangular for Angular 2 and higher versions
Stars: ✭ 787 (+1443.14%)
Mutual labels:  api, rest-api, rest

RestControl

About RestControl(Twitter)

RestControl is modern and powerful framework for testing REST services. RestControl provides set of tools for describing HTTP requests and responses in expressive and elegant way.

Latest Stable Version Latest Unstable Version License Build status Build Status

Examples

Here is a simple example of how to send a GET request and validate json response:

 /**
  * @test(
  *     title="Example test",
  *     description="Example test description",
  *     tags="find user"
  * )
  */
 public function exampleFindUser()
 {
    return send()->get('https://jsonplaceholder.typicode.com/users/1')
                 ->expectedResponse()
                 ->httpStatusOk()
                 ->json()
                 ->jsonPath('$.address.street', endsWith('Light'));
 }

Helpful HTML reports

RestControl - HTML Report

Features/Helpers

  • easily send HTTP requests, variety of http methods like post, get, put, delete, head, patch, purge, options, trace, connect
  • forms
  • request headers
  • basic HTTP authentication
  • oAuth (in progress)
  • oAuth2 authentication
  • JSON response validation
  • JSON Path body validation
  • validation of JSON body items and collection of items
  • sets of HTTP response code helpers like httpStatusOk, httpBadGateway etc.
  • easy to use expression language
  • iterating body objects
  • values comparing (e.g. equalsTo, lessThan)
  • dates comparing
  • string validation (e.g. startsWith, endsWith)
  • custom validation via closure
  • annotations describing tests
  • measuring response time and tests statistics
  • XML validation (in progress)
  • test environments management
  • JSON, HTML outputs for reporting system
  • handling HTTP cookies (in progress)
  • proxy, SSL support (in progress)
  • command for automatic generation of tests

Quick Start

The best way for quick start is to use RestControl standalone application. You can find it here https://github.com/rest-control/standalone-testing-application. If you want to save yourself the hassle of installing dependencies required for this project on your local machine, you can use Docker containers as an alternative. Note that you will need Docker and Docker Compose in version >= 2.1.

To build and start RestControl standalone application, run following commands:

[email protected]:~/projects/standalone-testing-application$ make build
[email protected]:~/projects/standalone-testing-application$ make start

Now, you can use Docker machine and run example tests.

[email protected]:~/projects/standalone-testing-application$ docker exec -it restcontrol_cli_1 bash
[email protected]:/app# php vendor/bin/rest-control run

Contributing

Thank you if you considering contributing to RestControl! The contribution guide is available in CONTRIBUTING.md file. Start watching this project to get regular updates.

Project roadmap

All planned releases you can find here: https://github.com/rest-control/rest-control/milestones.

Learning RestControl

RestControl documentation is under construction, please be patient. Current documentation files are available on https://rest-control.github.io/

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].