bltnico / dotmy

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dotmy

Tiny serverless dummy api ... wut ?

πŸ“¦ Setup

  1. Make a new Github repository
  2. Follow repository architecture
  3. Go to https://dotmy.herokuapp.com/{repository-name}/

πŸ“ Project architecture

repository
β”œβ”€β”€ user
β”‚   β”œβ”€β”€ get.js
β”‚   β”œβ”€β”€ me
β”‚   β”‚   β”œβ”€β”€ get.js
β”‚   β”‚   └── post.js
β”‚   └── 1
β”‚       β”œβ”€β”€ get.js
β”‚       β”œβ”€β”€ put.js
β”‚       β”œβ”€β”€ delete.js
β”‚       └── post.js
└── get.js

File sample

Take a look inside /user/me/get.js

const request = (headers, body, query) => {
  if (!('x-token' in headers)) {
    // @XXX Reject request
    throw new Error('Missing x-token header');
  }
};

const response = () => ({
  success: true,
  data: {
    id: 1,
    username: 'dotmind',
    email: 'hello@dotmind.io',
  },
});

// @XXX Don't forget to export methods !
module.exports = {
  request,
  response,
};

Only two optionals methods are availables

Request

const request = (
  headers: {},
  body: {},
  query: {},
): void => {};

Response

const response = (): {} => ({});

Availables endpoints

method path
GET /
GET /user
GET /user/me
POST /user/me
GET /user/1
PUT /user/1
DELETE /user/1
POST /user/1

πŸ˜‰ Tips

You can list all endpoints with https://dotmy.herokuapp.com/{repository-name}

{
  "GET": [
    "/",
    "/user",
    "/user/me",
    "/user/1",
  ],
  "POST": [
    "/user/me",
    "/user/1",
  ],
  "PUT": [
    "/user/1",
  ],
  "DELETE": [
    "/user/1",
  ],
}

πŸ‘Ύ Debug

Only add .debug after your repository name

Like this https://dotmy.herokuapp.com/{repository-name}.debug/

Debug

{
  ...payload
  mockcode: number,
  debug: {
    time: number, // Request time delay
    repo: string, // Target repo
    path: string, // Endpoint file
    content: string, // File content
    request: {
      method: string,
      query: {},
      body: {},
      headers: {},
    },
  },
}

🚧 WIP

  • List repository endpoints
  • Switch branch
  • Payload template

About


Languages

Language:JavaScript 100.0%