0.10.74 • Published 6 years ago

koapi v0.10.74

Weekly downloads
21
License
MIT
Repository
github
Last release
6 years ago

Koapi

RESTful API framework based on koa and bookshelf

Writing a RESTful API has never been so easy!

Intro

Koapi is a library for building RESTful APIs in a really simple way.

Installation

npm install koapi

Write your APIs in just ONE minute

Assume you have database below

Table posts
idtitlecontentscreated_atupdated_at
1TitleContents2016-8-12016-8-1
Table comments
idpost_idtitlecontentscreated_atupdated_at
11TitleComment2016-8-12016-8-1

Here we go!

app.js
const { Koapi, router, middlewares, model } = require('koapi')

const app = new Koapi();

/****************** Connect to database ******************/
model.connect({
  client: 'pg',
  connection: {
    host     : '127.0.0.1',
    user     : 'your_database_user',
    password : 'your_database_password',
    database : 'myapp_test'
  }
})


class Comment extends model.Base {
  get tableName () { return 'comments' }
  get hasTimestamps () { return true }
}
class Post extends model.Base {
  get tableName () { return 'posts' }
  get hasTimestamps () { return true }
  comments () {
    return this.hasMany(Comment);
  }
}

/****************** Implement Routers ******************/

const comments = router.resource(Comment, {
  collection: ctx => ctx.state.parents.post.comments()
  setup (route) {
    // method "crud" is a shortcut for "create", "read", "update" and "destroy"
    // YOU CAN ALSO USE MIDDLEWARE in "create", "read", "update", "destroy"    
    route.create(async(ctx, next) => {
      // you can do anything before create
      await next();
      // you can do anything after create
    })
    route.read(/* You can place any middleware here if you need */{
      filterable: ['created_at'], // filterable fields
      sortable: ['created_at'], // sortable fields
    });        
    route.destroy()
  }
})

// POST /posts
// GET  /posts
// GET  /posts/:id
// PATCH /posts/:id
// DELETE /posts/:id
const posts = router.resource(Post, route => route.crud()).children(comments)

/****************** Run server ******************/
app.use(middlewares.preset('restful'))
app.use(middlewares.routers([ posts ]))

app.listen(3000);

run

node ./app

You have done your RESTful APIs in ONE minute

Your API is far more complicated than this?

Checkout Koapp for your situation.

License

MIT

0.10.74

6 years ago

0.10.73

6 years ago

0.10.72

6 years ago

0.10.71

6 years ago

0.10.70

7 years ago

0.10.69

7 years ago

0.10.68

7 years ago

0.10.67

7 years ago

0.10.66

7 years ago

0.10.65

7 years ago

0.10.64

7 years ago

0.10.63

7 years ago

0.10.62

7 years ago

0.10.61

7 years ago

0.10.60

7 years ago

0.10.59

7 years ago

0.3.19

7 years ago

0.10.58

7 years ago

0.10.57

7 years ago

0.10.56

7 years ago

0.10.51

8 years ago

0.10.50

8 years ago

0.10.49

8 years ago

0.10.48

8 years ago

0.10.47

8 years ago

0.10.46

8 years ago

0.10.45

8 years ago

0.10.44

8 years ago

0.10.43

8 years ago

0.10.42

8 years ago

0.10.41

8 years ago

0.10.40

8 years ago

0.10.39

8 years ago

0.10.38

8 years ago

0.10.37

8 years ago

0.10.36

8 years ago

0.10.35

8 years ago

0.10.34

8 years ago

0.10.33

8 years ago

0.10.32

8 years ago

0.10.31

8 years ago

0.10.30

8 years ago

0.10.29

8 years ago

0.10.28

8 years ago

0.10.27

8 years ago

0.10.26

8 years ago

0.10.25

8 years ago

0.10.24

8 years ago

0.10.23

8 years ago

0.10.22

8 years ago

0.10.21

8 years ago

0.10.20

8 years ago

0.10.19

8 years ago

0.10.18

8 years ago

0.10.17

8 years ago

0.10.16

8 years ago

0.10.15

8 years ago

0.10.14

8 years ago

0.10.13

8 years ago

0.10.12

8 years ago

0.10.11

8 years ago

0.10.10

8 years ago

0.10.9

8 years ago

0.10.8

8 years ago

0.10.7

8 years ago

0.10.6

8 years ago

0.10.5

8 years ago

0.10.4

8 years ago

0.10.3

8 years ago

0.10.2

8 years ago

0.10.1

8 years ago

0.10.0

8 years ago

0.9.5

8 years ago

0.9.4

8 years ago

0.9.3

8 years ago

0.9.2

8 years ago

0.9.1

8 years ago

0.9.0

8 years ago

0.8.4

8 years ago

0.8.3

8 years ago

0.8.2

8 years ago

0.8.1

8 years ago

0.8.0

8 years ago

0.7.2

8 years ago

0.7.1

8 years ago

0.7.0

8 years ago

0.6.20

8 years ago

0.6.19

8 years ago

0.6.18

8 years ago

0.6.17

8 years ago

0.6.16

8 years ago

0.6.15

8 years ago

0.6.14

8 years ago

0.6.13

8 years ago

0.6.12

8 years ago

0.6.11

8 years ago

0.6.10

8 years ago

0.6.9

8 years ago

0.6.8

8 years ago

0.6.7

8 years ago

0.6.6

8 years ago

0.6.5

8 years ago

0.6.4

8 years ago

0.6.3

8 years ago

0.6.2

8 years ago

0.6.1

8 years ago

0.6.0

8 years ago

0.5.19

8 years ago

0.5.18

8 years ago

0.5.17

8 years ago

0.5.16

8 years ago

0.5.15

8 years ago

0.5.14

8 years ago

0.5.13

8 years ago

0.5.12

8 years ago

0.5.11

8 years ago

0.5.10

8 years ago

0.5.9

8 years ago

0.5.8

8 years ago

0.5.7

8 years ago

0.5.6

8 years ago

0.5.5

8 years ago

0.5.4

8 years ago

0.5.3

8 years ago

0.5.2

8 years ago

0.5.1

8 years ago

0.5.0

8 years ago

0.4.12

8 years ago

0.4.11

8 years ago

0.4.10

8 years ago

0.4.9

8 years ago

0.4.8

8 years ago

0.4.7

8 years ago

0.4.6

8 years ago

0.4.5

8 years ago

0.4.4

8 years ago

0.4.3

8 years ago

0.4.2

8 years ago

0.4.1

8 years ago

0.4.0

8 years ago

0.3.18

8 years ago

0.3.17

8 years ago

0.3.16

8 years ago

0.3.15

8 years ago

0.3.14

8 years ago

0.3.13

8 years ago

0.3.12

8 years ago

0.3.11

8 years ago

0.3.10

8 years ago

0.3.9

8 years ago

0.3.8

8 years ago

0.3.7

8 years ago

0.3.6

8 years ago

0.3.5

8 years ago

0.3.4

8 years ago

0.3.3

8 years ago

0.3.2

8 years ago

0.3.1

8 years ago

0.2.93

8 years ago

0.3.0

8 years ago

0.2.92

8 years ago

0.2.91

8 years ago

0.2.90

8 years ago

0.2.89

8 years ago

0.2.88

9 years ago

0.2.87

9 years ago

0.2.86

9 years ago

0.2.85

9 years ago

0.2.84

9 years ago

0.2.83

9 years ago

0.2.82

9 years ago

0.2.81

9 years ago

0.2.80

9 years ago

0.2.79

9 years ago

0.2.78

9 years ago

0.2.77

9 years ago

0.2.76

9 years ago

0.2.74

9 years ago

0.2.73

9 years ago

0.2.72

9 years ago

0.2.71

9 years ago

0.2.70

9 years ago

0.2.69

9 years ago

0.2.68

9 years ago

0.2.67

9 years ago

0.2.66

9 years ago

0.2.64

9 years ago

0.2.63

9 years ago

0.2.62

9 years ago

0.2.61

9 years ago

0.2.60

9 years ago

0.2.59

9 years ago

0.2.58

9 years ago

0.2.57

9 years ago

0.2.56

9 years ago

0.2.55

9 years ago

0.2.54

9 years ago

0.2.53

9 years ago

0.2.52

9 years ago

0.2.51

9 years ago

0.2.50

9 years ago

0.2.49

9 years ago

0.2.48

9 years ago

0.2.47

9 years ago

0.2.46

9 years ago

0.2.45

9 years ago

0.2.44

9 years ago

0.2.43

9 years ago

0.2.42

9 years ago

0.2.41

9 years ago

0.2.40

9 years ago

0.2.39

9 years ago

0.2.38

9 years ago

0.2.37

9 years ago

0.2.36

9 years ago

0.2.35

9 years ago

0.2.34

9 years ago

0.2.33

9 years ago

0.2.32

9 years ago

0.2.31

9 years ago

0.2.30

9 years ago

0.2.29

9 years ago

0.2.28

9 years ago

0.2.27

9 years ago

0.2.26

9 years ago

0.2.25

9 years ago

0.2.24

9 years ago

0.2.23

9 years ago

0.2.22

9 years ago

0.2.21

9 years ago

0.2.20

9 years ago

0.2.19

9 years ago

0.2.18

9 years ago

0.2.17

9 years ago

0.2.16

9 years ago

0.2.15

9 years ago

0.2.14

9 years ago

0.2.13

9 years ago

0.2.12

9 years ago

0.2.11

9 years ago

0.2.10

9 years ago

0.2.9

9 years ago

0.2.8

9 years ago

0.2.7

9 years ago

0.2.6

9 years ago

0.2.5

9 years ago

0.2.4

9 years ago

0.2.3

9 years ago

0.2.2

9 years ago

0.2.1

9 years ago

0.2.0

9 years ago

0.1.15

9 years ago

0.1.14

9 years ago

0.1.13

9 years ago

0.1.12

9 years ago

0.1.11

9 years ago

0.1.10

9 years ago

0.1.9

9 years ago

0.1.8

9 years ago

0.1.7

9 years ago

0.1.6

9 years ago

0.1.5

9 years ago

0.1.4

9 years ago

0.1.3

9 years ago

0.1.2

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago

1.0.4

9 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago