文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Yii2实现RESTful风格的API中要注意的坑有哪些呢

2024-04-02 19:55

关注

本篇文章给大家分享的是有关Yii2实现RESTful风格的API中要注意的坑有哪些呢,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Yii2实现RESTful风格的API的流程如下:
1、WEB前端(frontend)和后端(backend)的同级目录,新建一个文件夹,命名api,api中文件完全复制一份原始的backend中文件即可

2、需要修改common\config\bootstrap.php文件,对新建的应用增加alias别名

Yii::setAlias('@api', dirname(dirname(DIR)) . '/api');

3、保证你的web服务器开启rewrite规则!配置apache或nginx!这里请google或百度下。
nginx中在conf文件夹中vhost.conf或nginx.conf中相关位置加入:

location / {
try_files $uri $uri/ /index.php$is_args$args;
}

apache中在对应的api/web(域名指向的服务器目录中)加入.htaccess:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule . index.php

4、api应用程序美化路由(注意里面的括弧、名字的大小写,类名习惯驼峰式,但是controller 对应的控制器名一定要小写)
接着配置api/config/main.php文件

'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => true,

        'rules' => [
            ['class'=>'yii\rest\UrlRule','controller'=>'article'],
        ],
    ],

如果担心影响其他访问地址(如gii无法连接)可以先注释'enableStrictParsing' =>true,传到服务器后开启即可(增加安全性)

5、准备工作好啦,开始写conroller与model:
在www根目录-->common-->models中新建文件Article.php(可以使用Gii)

<?php

namespace common\models;

use Yii;


class Article extends \yii\db\ActiveRecord
{

public function attributeLabels()
{
return [
'id' => 'ID',
'title' => 'Title',
'content' => 'Content',
'category_id' => 'Category ID',
'status' => 'Status',
'created_by' => 'Created By',
'created_at' => 'Created At',
'updated_at' => 'Updated At',
];
}
}

  • @inheritdoc
    */
    public function rules()
    {
    return [
    [['id', 'title', 'content'], 'required'],
    [['id', 'category_id', 'status', 'created_by', 'created_at', 'updated_at'], 'integer'],
    [['content'], 'string'],
    [['title'], 'string', 'max' => 512],
    ];
    }

  • @inheritdoc
    */
    public static function tableName()
    {
    return 'article';
    }

  • 然后在api中controllers中新建文件:ArticleController.php

    <?php
    namespace api\controllers;
    use yii\rest\ActiveController;
    use common\models\Article;

    class ArticleController extends ActiveController
    {

    // function __construct(argument)
    // {
    //  # code...
    // }
    public $modelClass='\common\models\Article';
    }

    6、访问链接查看接口返回值:
    http://www.xxx.com/articles  已经能够很方便的获取我们表中的数据了。
    当然,yii2还对该api封装了如下操作:

    GET /articles: 逐页列出所有用户
    HEAD /articles: 显示用户列表的概要信息
    POST /articles: 创建一个新用户
    GET /articles/123: 返回用户 123 的详细信息
    HEAD /articles/123: 显示用户 123 的概述信息
    PATCH /articles/123 and PUT /users/123: 更新用户123
    DELETE /articles/123: 删除用户123
    OPTIONS /articles: 显示关于末端 /users 支持的动词
    OPTIONS /articles/123: 显示有关末端 /users/123 支持的动词

    以上就是Yii2实现RESTful风格的API中要注意的坑有哪些呢,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

    阅读原文内容投诉

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    软考中级精品资料免费领

    • 历年真题答案解析
    • 备考技巧名师总结
    • 高频考点精准押题
    • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

      难度     813人已做
      查看
    • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

      难度     354人已做
      查看
    • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

      难度     318人已做
      查看
    • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

      难度     435人已做
      查看
    • 2024年上半年系统架构设计师考试综合知识真题

      难度     224人已做
      查看

    相关文章

    发现更多好内容

    猜你喜欢

    AI推送时光机
    位置:首页-资讯-前端开发
    咦!没有更多了?去看看其它编程学习网 内容吧
    首页课程
    资料下载
    问答资讯