0.10.74 • Published 7 years ago

koapi v0.10.74

Weekly downloads
21
License
MIT
Repository
github
Last release
7 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

7 years ago

0.10.73

7 years ago

0.10.72

7 years ago

0.10.71

7 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

8 years ago

0.10.56

8 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

9 years ago

0.5.9

9 years ago

0.5.8

9 years ago

0.5.7

9 years ago

0.5.6

9 years ago

0.5.5

9 years ago

0.5.4

9 years ago

0.5.3

9 years ago

0.5.2

9 years ago

0.5.1

9 years ago

0.5.0

9 years ago

0.4.12

9 years ago

0.4.11

9 years ago

0.4.10

9 years ago

0.4.9

9 years ago

0.4.8

9 years ago

0.4.7

9 years ago

0.4.6

9 years ago

0.4.5

9 years ago

0.4.4

9 years ago

0.4.3

9 years ago

0.4.2

9 years ago

0.4.1

9 years ago

0.4.0

9 years ago

0.3.18

9 years ago

0.3.17

9 years ago

0.3.16

9 years ago

0.3.15

9 years ago

0.3.14

9 years ago

0.3.13

9 years ago

0.3.12

9 years ago

0.3.11

9 years ago

0.3.10

9 years ago

0.3.9

9 years ago

0.3.8

9 years ago

0.3.7

9 years ago

0.3.6

9 years ago

0.3.5

9 years ago

0.3.4

9 years ago

0.3.3

9 years ago

0.3.2

9 years ago

0.3.1

9 years ago

0.2.93

9 years ago

0.3.0

9 years ago

0.2.92

9 years ago

0.2.91

9 years ago

0.2.90

9 years ago

0.2.89

9 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

10 years ago

0.1.9

10 years ago

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

1.0.4

10 years ago

1.0.3

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago