0.10.74 • Published 5 years ago

koapi v0.10.74

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

5 years ago

0.10.73

5 years ago

0.10.72

5 years ago

0.10.71

5 years ago

0.10.70

5 years ago

0.10.69

5 years ago

0.10.68

5 years ago

0.10.67

5 years ago

0.10.66

5 years ago

0.10.65

5 years ago

0.10.64

5 years ago

0.10.63

5 years ago

0.10.62

5 years ago

0.10.61

5 years ago

0.10.60

6 years ago

0.10.59

6 years ago

0.3.19

6 years ago

0.10.58

6 years ago

0.10.57

6 years ago

0.10.56

6 years ago

0.10.51

7 years ago

0.10.50

7 years ago

0.10.49

7 years ago

0.10.48

7 years ago

0.10.47

7 years ago

0.10.46

7 years ago

0.10.45

7 years ago

0.10.44

7 years ago

0.10.43

7 years ago

0.10.42

7 years ago

0.10.41

7 years ago

0.10.40

7 years ago

0.10.39

7 years ago

0.10.38

7 years ago

0.10.37

7 years ago

0.10.36

7 years ago

0.10.35

7 years ago

0.10.34

7 years ago

0.10.33

7 years ago

0.10.32

7 years ago

0.10.31

7 years ago

0.10.30

7 years ago

0.10.29

7 years ago

0.10.28

7 years ago

0.10.27

7 years ago

0.10.26

7 years ago

0.10.25

7 years ago

0.10.24

7 years ago

0.10.23

7 years ago

0.10.22

7 years ago

0.10.21

7 years ago

0.10.20

7 years ago

0.10.19

7 years ago

0.10.18

7 years ago

0.10.17

7 years ago

0.10.16

7 years ago

0.10.15

7 years ago

0.10.14

7 years ago

0.10.13

7 years ago

0.10.12

7 years ago

0.10.11

7 years ago

0.10.10

7 years ago

0.10.9

7 years ago

0.10.8

7 years ago

0.10.7

7 years ago

0.10.6

7 years ago

0.10.5

7 years ago

0.10.4

7 years ago

0.10.3

7 years ago

0.10.2

7 years ago

0.10.1

7 years ago

0.10.0

7 years ago

0.9.5

7 years ago

0.9.4

7 years ago

0.9.3

7 years ago

0.9.2

7 years ago

0.9.1

7 years ago

0.9.0

7 years ago

0.8.4

7 years ago

0.8.3

7 years ago

0.8.2

7 years ago

0.8.1

7 years ago

0.8.0

7 years ago

0.7.2

7 years ago

0.7.1

7 years ago

0.7.0

7 years ago

0.6.20

7 years ago

0.6.19

7 years ago

0.6.18

7 years ago

0.6.17

7 years ago

0.6.16

7 years ago

0.6.15

7 years ago

0.6.14

7 years ago

0.6.13

7 years ago

0.6.12

7 years ago

0.6.11

7 years ago

0.6.10

7 years ago

0.6.9

7 years ago

0.6.8

7 years ago

0.6.7

7 years ago

0.6.6

7 years ago

0.6.5

7 years ago

0.6.4

7 years ago

0.6.3

7 years ago

0.6.2

7 years ago

0.6.1

7 years ago

0.6.0

7 years ago

0.5.19

7 years ago

0.5.18

7 years ago

0.5.17

7 years ago

0.5.16

7 years ago

0.5.15

7 years ago

0.5.14

7 years ago

0.5.13

7 years ago

0.5.12

7 years ago

0.5.11

7 years ago

0.5.10

7 years ago

0.5.9

7 years ago

0.5.8

7 years ago

0.5.7

7 years ago

0.5.6

7 years ago

0.5.5

7 years ago

0.5.4

7 years ago

0.5.3

7 years ago

0.5.2

7 years ago

0.5.1

7 years ago

0.5.0

7 years ago

0.4.12

7 years ago

0.4.11

7 years ago

0.4.10

7 years ago

0.4.9

7 years ago

0.4.8

7 years ago

0.4.7

7 years ago

0.4.6

7 years ago

0.4.5

7 years ago

0.4.4

7 years ago

0.4.3

7 years ago

0.4.2

7 years ago

0.4.1

7 years ago

0.4.0

7 years ago

0.3.18

7 years ago

0.3.17

7 years ago

0.3.16

7 years ago

0.3.15

7 years ago

0.3.14

7 years ago

0.3.13

7 years ago

0.3.12

7 years ago

0.3.11

7 years ago

0.3.10

7 years ago

0.3.9

7 years ago

0.3.8

7 years ago

0.3.7

7 years ago

0.3.6

7 years ago

0.3.5

7 years ago

0.3.4

7 years ago

0.3.3

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.2.93

7 years ago

0.3.0

7 years ago

0.2.92

7 years ago

0.2.91

7 years ago

0.2.90

7 years ago

0.2.89

7 years ago

0.2.88

7 years ago

0.2.87

7 years ago

0.2.86

7 years ago

0.2.85

7 years ago

0.2.84

7 years ago

0.2.83

7 years ago

0.2.82

7 years ago

0.2.81

7 years ago

0.2.80

7 years ago

0.2.79

7 years ago

0.2.78

7 years ago

0.2.77

7 years ago

0.2.76

7 years ago

0.2.74

7 years ago

0.2.73

7 years ago

0.2.72

7 years ago

0.2.71

8 years ago

0.2.70

8 years ago

0.2.69

8 years ago

0.2.68

8 years ago

0.2.67

8 years ago

0.2.66

8 years ago

0.2.64

8 years ago

0.2.63

8 years ago

0.2.62

8 years ago

0.2.61

8 years ago

0.2.60

8 years ago

0.2.59

8 years ago

0.2.58

8 years ago

0.2.57

8 years ago

0.2.56

8 years ago

0.2.55

8 years ago

0.2.54

8 years ago

0.2.53

8 years ago

0.2.52

8 years ago

0.2.51

8 years ago

0.2.50

8 years ago

0.2.49

8 years ago

0.2.48

8 years ago

0.2.47

8 years ago

0.2.46

8 years ago

0.2.45

8 years ago

0.2.44

8 years ago

0.2.43

8 years ago

0.2.42

8 years ago

0.2.41

8 years ago

0.2.40

8 years ago

0.2.39

8 years ago

0.2.38

8 years ago

0.2.37

8 years ago

0.2.36

8 years ago

0.2.35

8 years ago

0.2.34

8 years ago

0.2.33

8 years ago

0.2.32

8 years ago

0.2.31

8 years ago

0.2.30

8 years ago

0.2.29

8 years ago

0.2.28

8 years ago

0.2.27

8 years ago

0.2.26

8 years ago

0.2.25

8 years ago

0.2.24

8 years ago

0.2.23

8 years ago

0.2.22

8 years ago

0.2.21

8 years ago

0.2.20

8 years ago

0.2.19

8 years ago

0.2.18

8 years ago

0.2.17

8 years ago

0.2.16

8 years ago

0.2.15

8 years ago

0.2.14

8 years ago

0.2.13

8 years ago

0.2.12

8 years ago

0.2.11

8 years ago

0.2.10

8 years ago

0.2.9

8 years ago

0.2.8

8 years ago

0.2.7

8 years ago

0.2.6

8 years ago

0.2.5

8 years ago

0.2.4

8 years ago

0.2.3

8 years ago

0.2.2

8 years ago

0.2.1

8 years ago

0.2.0

8 years ago

0.1.15

8 years ago

0.1.14

8 years ago

0.1.13

8 years ago

0.1.12

8 years ago

0.1.11

8 years ago

0.1.10

8 years ago

0.1.9

8 years ago

0.1.8

8 years ago

0.1.7

8 years ago

0.1.6

8 years ago

0.1.5

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago