zoukankan      html  css  js  c++  java
  • 使用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"
    }
  • 相关阅读:
    linux下内存检测工具valgrind
    c语言可变参数与宏定义
    rabbitmq学习之路-rabbitmqctl
    linux/mac下命令行rm回收站--rmtrash
    Python之路【第十一篇】: 进程与线程理论篇
    Python之路【第十一篇】: 进程与线程
    Git常用命令
    Python之路【第十篇】: python基础之socket编程
    Python之路【第九篇】:面向对象进阶
    Python之路【第八篇】:面向对象的程序设计
  • 原文地址:https://www.cnblogs.com/jun1019/p/14448293.html
Copyright © 2011-2022 走看看