记一次 APP 接口开发

laravel |1年前 |0

laravel 后端


入职没多久,就开始做APP的接口开发。由于以前没有做过APP接口开发,于是项目前期花时间,查询了大量资料。知晓了一些接口开发的规范,一些可能会遇到的坑等等。其实项目早就上线了,最近有点空闲时间,所以把之前的东西整理记录下来。

项目开始前准备

  • restful API

    在技术准备前阶段,查询了很多资料,也由于最近都是在使用 Laravel 开发,其 资源路由restful 做了很好的支持,所以还是决定使用 restful API 这种方式。

  • 用户认证

    由于是无状态,所以无法使用 session 跟服务端做一些验证之类的东西。查资料,一般都是使用 token 这种方式。

  • 接口版本

    真实场景,APP 是一定会更新的,但是由于 APP 安装在客户的机器上,这就导致了跟 WEB 应用不一样的后果。APP 客户,假如我不更新 APP 的版本,但是由于接口更新,导致了数据结构可能发生了变化,这样就会导致旧版 APP 出现错误,无法使用等问题。所以,接口增加了版本的区分。

  • 参数加解密

    客户端传来的参数和响应的数据都使用了 AES 加密。生产环境所有参数和返回数据都加密,为了方便测试,测试环境下不加密参数和返回数据。

  • 数据响应

    使用了 json 的方式,laravel 自带的 api资源

  • 接口调用频率

    为了防止接口被乱用,被类似 DOS 之类的攻击,限制每个 IP 调用接口的频率( laravel 框架自带功能)。

  • 制定规则

    返回一组列表数据,用一种结构。返回一条数据,用一种结构。

  • 接口文档编写

    跟客户端开发人员互动,把一些接口的规范写进文档。

  • 版本控制

    使用 git 控制代码版本

  • API 测试

    使用 postman 测试接口,底层判断“生产环境”和“测试环境”

核心代码实现

使用 laravel自带的 artisan 命令创建相关代码

  • API资源路由

    API 路由文件,路径:routes/api.php

    注册路由:Route::apiResource('tests', 'TestController');

  • 资源控制器

    生成控制器文件命令:php artisan make:controller TestController --resource

  • Model

    生成model文件命令:php artisan make:model Models/Test

  • API资源

    生成资源文件命令:php artisan make:resource Test

最基本的东西,以及一些问题和坑,都记录于此。

MeiWJ
A PHP Web Artisan

完善源自用心 細節決定成敗