Skip to content

etdebruin/naptime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Naptime

Describe your data model using JSON and have naptime spit out the RESTful API endpoints.

Why do this?

Often times when I start a project, I end up designing the API before thinking through the completeness of my data. This way, I can imagine exactly what I want my data entity to look like using JSON and have naptime output all the relevant RESTful API endpoints.

How to use

Create a file that contains your JSON description, eg. example.json and run:

naptime example.json

Example

Here we created a file person.json that contains the following description:

{
  "name": "Richard",
  "gender": "male",
  "siblings": {
    "brother": {
      "name": "John",
      "birthdate" : "5/1/1972"
    },
    "sister": "Sarah"
  },
  "address": {
    "street": "582 S Grade",
    "city": "Alpine"
  },
  "employed": "yes"
}

Then we ran ruby naptime.rb person.json and got the following output:

POST /person
{"name":"Richard","gender":"male","employed":"yes"}

GET /person/[id]

POST /person/[id]
{"name":"Richard","gender":"male","employed":"yes"}

DELETE /person/[id]

POST /person/[id]/siblings
{"sister":"Sarah"}

GET /person/[id]/siblings/[id]

POST /person/[id]/siblings/[id]
{"sister":"Sarah"}

DELETE /person/[id]/siblings/[id]

POST /person/[id]/siblings/[id]/brother
{"name":"John","birthdate":"5/1/1972"}

GET /person/[id]/siblings/[id]/brother/[id]

POST /person/[id]/siblings/[id]/brother/[id]
{"name":"John","birthdate":"5/1/1972"}

DELETE /person/[id]/siblings/[id]/brother/[id]

POST /person/[id]/address
{"street":"582 S Grade","city":"Alpine"}

GET /person/[id]/address/[id]

POST /person/[id]/address/[id]
{"street":"582 S Grade","city":"Alpine"}

DELETE /person/[id]/address/[id]

This output describes the necessary API endpoints to do the CRUD for the described data entity.

About

Describe your data model using JSON and have naptime spit out the RESTful API endpoints

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages