• Stars
    star
    105
  • Rank 328,196 (Top 7 %)
  • Language Gherkin
  • License
    MIT License
  • Created over 11 years ago
  • Updated over 2 years ago

Reviews

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

Repository Details

Behavior specification for Gavel, validator of HTTP transactions

Behavior spec for Gavel, validator of HTTP transactions

Relish docs npm version Greenkeeper badge

Gavel - Validator of HTTP Transactions

What is Gavel?

Gavel detects important differences between actual and expected HTTP transactions (HTTP request and response pairs). Gavel also decides whether the actual HTTP transaction is valid or not.

Implementations

Documentation

About gavel-spec

This repository contains implementation-independent behavior specification of Gavel. It's written in Gherkin, language used by Cucumber. Two main benefits are:

  • Any Gavel implementation can be tested against the specification, which ensures the behavior is uniform.
  • Documentation at Relish is generated from the specification, which ensures it's always up-to-date.

Examples are made in raw HTTP to focus on implementation independence.

Usage

To use the specification in your project and test against it, install it as npm package (or include as a git submodule):

$ npm install gavel-spec
...
$ find ./node_modules/gavel-spec/features/**/*.feature
./node_modules/gavel-spec/features/expectations/body_json_example.feature
./node_modules/gavel-spec/features/expectations/body_text_example.feature
./node_modules/gavel-spec/features/expectations/headers.feature
./node_modules/gavel-spec/features/expectations/status_code.feature
...

It's also possible to get path to the directory with features from JavaScript:

var featuresPath = require('gavel-spec').featuresPath;
console.log(featuresPath);  // prints '/.../node_modules/gavel-spec/features/'

Use Cucumber for testing.

Publishing Documentation

Currently publishing of a new version of the generated documentation is done manually:

  1. Install Relish CLI: gem install relish
  2. Add current version: relish versions:add apiary/gavel:1.1.0 (the 1.1.0 should be the same number which appears on npm as the latest package version)
  3. Publish new version of the documentation: relish push apiary/gavel:1.1.0 path ./features/

Steps 2-3 has been simplified as npm run docs:publish command.

More Repositories

1

api-blueprint

API Blueprint
8,638
star
2

dredd

Language-agnostic HTTP API Testing Tool
JavaScript
4,169
star
3

mson

Markdown Syntax for Object Notation
899
star
4

snowcrash

API Blueprint Parser
C++
373
star
5

protagonist

Protagonist is Node.js wrapper for the API Blueprint parser
C++
349
star
6

drafter

API Blueprint Parser (C++)
C++
301
star
7

apiary-client

Apiary CLI client
Ruby
203
star
8

curl-trace-parser

Parser for output from Curl --trace option
JavaScript
198
star
9

api-blueprint-sublime-plugin

API Blueprint Sublime Text plugin
Python
176
star
10

s3-streaming-upload

s3-streaming-upload is node.js library that listens to your stream and upload its data to Amazon S3 using ManagedUpload API.
JavaScript
123
star
11

swagger2blueprint

Convert Swagger API descriptions into API Blueprint
JavaScript
99
star
12

gavel.js

Validator of HTTP messages (JavaScript implementation)
JavaScript
97
star
13

dredd-example

Example application using Dredd and CI
JavaScript
85
star
14

api-elements.js

Library for consuming API Elements in JavaScript
JavaScript
74
star
15

redsnow

Ruby binding for the Snow Crash library, also a thermonuclear weapon.
Ruby
69
star
16

drafter.js

API Blueprint parser in JS
JavaScript
55
star
17

fury.js

API Description SDK
JavaScript
52
star
18

emscripten-docker

Emscripten as docker images
Dockerfile
51
star
19

cloudwatch-to-papertrail

Lambda to send logs from Cloudwatch to Papertrail
JavaScript
48
star
20

blueprint-parser

Deprecated PEG.js-based parser for parsing legacy Apiary Blueprint Format
CoffeeScript
47
star
21

polls-api

Polls is an example web API that allows consumers to view polls and vote in them.
Python
46
star
22

api-blueprint-rfcs

The API Blueprint RFC process
44
star
23

chrome-extension-ci

How to put a Chrome Extension into CI
JavaScript
41
star
24

attributes-kit

DEPRECATED Attributes Kit helps you with rendering MSON.
JavaScript
39
star
25

drafter-npm

Node API Blueprint Parser
JavaScript
37
star
26

language-templates

Language templates used to render example HTTP calls in different languages
HTML
36
star
27

polls-app

Swift iPhone and iPad Client for Polls API, using Hyperdrive API client
Swift
34
star
28

heroku-datadog-drain-golang

Funnel metrics from multiple Heroku apps into DataDog using statsd.
Go
34
star
29

api-blueprint-ast

API Blueprint AST Serialization Media Types [adhd, apib]
32
star
30

Paw-APIBlueprintGenerator

Paw extension providing support to export API Blueprint as a code generator.
CoffeeScript
32
star
31

api-elements

API Elements is a structure for describing APIs and the complex data structures used within them.
Python
28
star
32

http-string-parser

Parse HTTP Request and Response from String in Node.JS
CoffeeScript
26
star
33

apiblueprint.org

API Blueprint Website
CSS
19
star
34

apiblueprintorg

old apiblueprint.org site
CoffeeScript
19
star
35

dredd-hooks-python

Python Hooks for Dredd API Testing Framework
Python
19
star
36

matter_compiler

API Blueprint AST to API Blueprint Conversion Tool [adhd]
Ruby
16
star
37

api-blueprint-cheatsheet

API Blueprint Cheatsheet
API Blueprint
16
star
38

apiaryio.github.com

Apiary Blog
HTML
16
star
39

dredd-hooks-ruby

Ruby Hooks Worker for Dredd API Testing Framework
Ruby
15
star
40

fury-cli

Command line tool interface for Fury.js
JavaScript
12
star
41

fury-adapter-swagger

Swagger 2.0 parser adapter for Fury.js
JavaScript
11
star
42

dredd-transactions

Compiles a list of HTTP transactions (request-response pairs) from an API description document
JavaScript
10
star
43

markdown-parser

The real Markdown parser deal. You know, the one with a Markdown AST. Based on Upskirt, Sundown, Redcarpet or Hoedown whatever is trending.
C++
10
star
44

ivy

A Node.js queue library focused on easy, yet flexible task execution.
CoffeeScript
9
star
45

Paw-APIBlueprintImporter

Paw extension to import API Blueprint
JavaScript
8
star
46

sos

Simple c++ Object Serialization
C++
8
star
47

api.apiblueprint.org

API Blueprint
7
star
48

docker-base-images

Base docker images for Apiary applications
Dockerfile
7
star
49

constitutions

Write API Style Guide Rules locally, collaboratively and test them in CI
JavaScript
6
star
50

deckardcain

Deckard Cain library identifies (media) type of API description files
JavaScript
6
star
51

boutique.js

The finest representations to emphasize natural beauty of your MSON AST
CoffeeScript
6
star
52

protected-s3

Simple application that allows you to display the content of your S3 to authorised users only.
JavaScript
6
star
53

black-belt

Internal toolbelt on steroids (idle since September 2018)
Python
6
star
54

mson-ast

MSON AST Serialization Media Types
4
star
55

dredd-hooks-template

Template of an integration test suite for writing Dredd hooks handler in a new language
JavaScript
4
star
56

dredd-docker

Docker image for Dredd, a language-agnostic HTTP API testing tool
Shell
4
star
57

mson-zoo

Collection of MSON samples that can be used as a showcase or testing purposes
JavaScript
4
star
58

base-styles

Apiary Base CSS Styles
CSS
3
star
59

fury-adapter-apib-serializer

API Blueprint serializer for Fury.js
JavaScript
3
star
60

dredd-test-rails

Example Rails application for testing with API Blueprint and Dredd
Ruby
3
star
61

npm-boilerplate

Boilerplate for NPM package with Mocha, CoffeeScript and test directory structure
Shell
3
star
62

swagger-zoo

A collection of Swagger examples and their Refract representation
JavaScript
2
star
63

heroku-kafka-demo-nodejs

HTML
2
star
64

blueprint-transactions

Deprecated compiler of HTTP Transactions from API Blueprint AST
CoffeeScript
2
star
65

refract-query

JavaScript
2
star
66

generator-apiary-lib

Deprecated Apiary's Yeoman generator for basic library scaffolding
JavaScript
2
star
67

datapool

Library of miscellaneous reusable data models for API Blueprint
2
star
68

apiary_blueprint_convertor

Legacy Apiary Blueprint AST to API Blueprint AST convertor.
Ruby
1
star
69

metamorphoses

Transforms API Blueprint AST or legacy Apiary Blueprint AST into Apiary Application AST
CoffeeScript
1
star
70

wercker-npm-install-test

Dockerfile
1
star
71

pagerduty-overlap-checker

Pager Duty Overrides Checker
JavaScript
1
star
72

tully-test

API Blueprint
1
star
73

api-blueprint-http-formatter

Format pair of HTTP Request and Response to API Blueprint format
CoffeeScript
1
star
74

abagnale

Forge unique IDs for Refract data structure elements
JavaScript
1
star
75

blueprint-markdown-renderer

Default parser and set of settings for parsing Markdown blocks in API Blueprint
JavaScript
1
star
76

misterio

Testing project to compare C++ parser generator for ability to parse blueprint
C++
1
star
77

dribbble-api

API Blueprint
1
star
78

example-intersphinx-repo

This repository demonstrates using Intersphinx with indexes being exported in Docker volume
Python
1
star
79

console-proxy

Apiary Browser Console
JavaScript
1
star