Skip to content
Full-Featured API Mock Server
Ruby CSS JavaScript
Find file
Pull request Compare This branch is 78 commits ahead of akhilstanislavose:master.
Latest commit 29b877f Mar 18, 2014 @zlx move css & js & image to assets

Mock API Server

A Full-Featured API Mock Server

Code Climate Build Status



Install Mongodb

Install MongoDB

Clone the Project

git clone

Install Dependancy

bundle install --path=vendor/bundle


Mongodb Config

Configurate mongodb in mongoid.yml like below:

cp mongoid.yml.example mongoid.yml

Start Server




Default username/password: admin/admin


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) do
  get "/*any", to: redirect { |p, req| "http://<<your-mockapi-server>>/#{req.fullpath}" }

create domain/mockapi.rb file

module Domain

  APIs = %w{

  class Mockapi
    def self.matches? request
      api = request.fullpath.sub(/\?.*/, "") APIs


Assign your mock apis in APIs



Mock Data

ruby seed.rb

Test the service using a curl or your favourite tool

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


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_processes 2
working_directory @dir

timeout 30

# Specify path to socket unicorn listens to,
# we will use this in our nginx.conf later
listen "#{@dir}tmp/sockets/unicorn.sock", :backlog => 64

# Set process id path
pid "#{@dir}tmp/pids/"

# Set log file paths
stderr_path "#{@dir}log/unicorn.stderr.log"
stdout_path "#{@dir}log/unicorn.stdout.log"

similar projects

  2. Mock Server
  3. mocky
Something went wrong with that request. Please try again.