Skip to content

Repository files navigation

Mock API Server

A Full-Featured API Mock Server

Code ClimateBuild Status

Demo

Installation

Install Mongodb

Install MongoDB

Clone the Project

git clone git@github.com:zlx/API-mock-server.git

Install Dependancy

bundle install --path=vendor/bundle

Usage

Mongodb Config

Configurate mongodb in mongoid.yml like below:

cp mongoid.yml.example mongoid.yml

Start Server

rackup

Visit

http://localhost:9292/admin

Default username/password: admin/admin

HowTo

How to config admin username/password ?

Config admin_user and admin_password in apimockserver.rb

How to config Top Namespace ?

Top Namespace is used for specific api version.

for an example, if you config top_namespace = "/api/v1", then you must visit "/api/v1/me" to reach "/me" route which you created.

Top namespace is a global setting, so it will take an effect for every routes you created.

To config top_namespace in in apimockserver.rb

How to redirect your routes to mock server

Add redirect route at the end of your route.rb

constraints(Domain::Mockapi)doget"/*any",to: redirect{ |p,req| "http://<<your-mockapi-server>>/#{req.fullpath}"}end

create domain/mockapi.rb file

moduleDomainAPIs=%w{}classMockapidefself.matches?requestapi=request.fullpath.sub(/\?.*/,"")api.in?APIsendendend

Assign your mock apis in APIs

wiki

Test

Mock Data

ruby seed.rb

Test the service using a curl or your favourite tool

curl http://localhost:4000
{ "hello": "world" }

Postman

https://github.com/a85/POSTMan-Chrome-Extension

Deploy on Server

work with unicorn

Guide for setup unicorn for rack app

Below is an simple example for unicorn configure:wiki

# set path to app that will be used to configure unicorn,# note the trailing slash in this example@dir="/home/deploy/rails_apps/API-mock-server/"worker_processes2working_directory@dirtimeout30# Specify path to socket unicorn listens to,# we will use this in our nginx.conf laterlisten"#{@dir}tmp/sockets/unicorn.sock",:backlog=>64# Set process id pathpid"#{@dir}tmp/pids/unicorn.pid"# Set log file pathsstderr_path"#{@dir}log/unicorn.stderr.log"stdout_path"#{@dir}log/unicorn.stdout.log"

similar projects

  1. mockable.io
  2. Mock Server
  3. mocky

About

Full-Featured API Mock Server

Resources

Stars

25 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages