• 使用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"
    }
  • 相关阅读:
    数组与字符串中的关于截取的总结
    js函数哪些事
    BFC的基础理解及应用场景
    idea永久激活码20211107
    SpringBoot加载properties配置文件的顺序
    Java排序算法之归并排序
    sort与sorted排序
    自定义的迭代器之 生成器
    通过可迭代对象,迭代器,理解dict,list,filter,map,zip,dict,list之间的联系
    迭代器原理 、for循环原理、自定义一个迭代器
  • 原文地址:https://www.cnblogs.com/jun1019/p/14448293.html
Copyright © 2020-2023  润新知