使用Egg.js编写RestfulAPI接口(五)资源路由配置

egg.js定义了快速生成CRUD路由配置的方式,比如使用如下方式可以为帖子模块自动配置一组增删改查的路由,从而达到简化繁琐路由配置的目的。

1.配置资源路由,在router.js文件中增加帖子资源路由

router.resources('posts', '/api/posts', controller.posts);

 

router.resources()函数的第一个参数posts是路由名称,第二个参数/api/posts是请求路径。如图所示:

2.在controller目录下创建posts.js文件,完整内容如下

'use strict';

const Controller = require('egg').Controller;

class PostsController extends Controller {
    // 列表页
    async index() {
        console.log('>>> index')
        this.ctx.body = {
            msg: 'ok',
            data: '列表页'
        };
    };

    // 新增表单页
    async new() {
        console.log('>>> new')
        this.ctx.body = {
            msg: 'ok',
            data: '新增表单页'
        };
    };

    // 新增逻辑
    async create() {
        console.log('>>> create')
        this.ctx.body = {
            msg: 'ok',
            data: '新增逻辑'
        };
    };

    // 详情页
    async show() {
        console.log('>>> show')
        let id = this.ctx.params.id;
        this.ctx.body = {
            msg: 'ok',
            data: '详情页,id=' + id
        };
    };

    // 编辑表单页
    async edit() {
        console.log('>>> edit')
        let id = this.ctx.params.id;
        this.ctx.body = {
            msg: 'ok',
            data: '编辑表单页,id=' + id
        };
    };

    // 更新逻辑
    async update() {
        console.log('>>> update')
        let id = this.ctx.params.id;
        this.ctx.body = {
            msg: 'ok',
            data: '更新逻辑, id=' + id
        };
    };

    // 删除逻辑
    async destroy() {
        console.log('>>> destroy')
        let id = this.ctx.params.id;
        this.ctx.body = {
            msg: 'ok',
            data: '删除逻辑, id=' + id
        };
    };
}

module.exports = PostsController;

3.PostMain接口测试结果

1.帖子列表页
请求地址:http://127.0.0.1:7001/api/posts
请求方式:GET
返回结果:
{
    "msg": "ok",
    "data": "列表页"
}

2.帖子新增表单页
请求地址:http://127.0.0.1:7001/api/posts/new
请求方式:GET
返回结果:
{
    "msg": "ok",
    "data": "新增表单页"
}

3.帖子详情页
请求地址:http://127.0.0.1:7001/api/posts/2
请求方式:GET
返回结果:
{
    "msg": "ok",
    "data": "详情页,id=2"
}

4.帖子编辑表单页
请求地址:http://127.0.0.1:7001/api/posts/55/edit
请求方式:GET
返回结果:
{
    "msg": "ok",
    "data": "编辑表单页,id=55"
}

5.帖子新增逻辑
请求地址:http://127.0.0.1:7001/api/posts
请求方式:POST
返回结果:
{
    "msg": "ok",
    "data": "新增逻辑"
}

6.帖子更新逻辑
请求地址:http://127.0.0.1:7001/api/posts/14
请求方式:PUT
返回结果:
{
    "msg": "ok",
    "data": "更新逻辑, id=14"
}

6.帖子删除逻辑
请求地址:http://127.0.0.1:7001/api/posts/15
请求方式:DELETE
返回结果:
{
    "msg": "ok",
    "data": "删除逻辑, id=15"
}

 

posted @ 2021-02-25 17:41  xuebusi  阅读(986)  评论(0编辑  收藏  举报