当前位置: 首页 > article >正文

symfony快速构建restfull api--api-platform初体验(快速上手笔记)

初识api-platform:

      都0202年了,整天还在用php一遍又一遍的写crud api吗?还在为构建restfull风格api而烦恼吗?那么,symfony的衍生框架api-platform你值得拥有。

      东西很强大,只是国内好像用的人不是很多,只有英文文档也难怪(不过现在机翻这么强大,这都不是问题)。作为过来人,把好东西分享给大家。同时,好记性不如烂键盘!

当然,api-platform不只是在symfony框架上加了一个api快速构建组件这么简单,这里有一张官网菜单的机翻截图:

api组件可以基于symfony框架快速构建restfull api、管理员组件可以通过对easyBundle配置快速构建后台管理、客户端生成器组件可以结合当前主流的3大前端框架生成客户端界面。

没错,它想让你优雅的成为一名优雅的全栈(然而大多数时候全栈和全干好像一个意思|||)。

附:

  1. 官方文档 https://api-platform.com/

安装/环境构建:

你可以使用 composer require api 直接将api-platform作为依赖安装。

使用:

1、api组件的使用

--------- 初级用法 -------------------------------------------------- 

1、创建api

如果成功安装了api-platform,使用 bin/console make:entity 命令创建entity(输入entity name时或问你是否标记这个类为一个api platform资源,默认no,你可以输入yes)之后,访问项目的/api路由,你惊奇的发现entity的crud api和文档都已经生成好了(并且做了分页),并且页面还给每个接口都附带了一个测试工具。没错,就是这么快。

--------- 进阶用法 -------------------------------------------------- 

上面这些接口可能不太灵活,想要自定义,没问题:过滤器用起来

2、过滤器

你想要的 大|小|等于、排序、模糊查询、范围等等一切的查询,写写注释,改改配置,api就写完了美滋滋。

这时候用过symfony的人突然发现,我他喵的用symfony连doctrine都不用学了,哈哈哈!

1>、搜索过滤器(个人觉得这个比较常用,文档 https://api-platform.com/docs/core/filters/#search-filter)

比如在DocumentResource类里做了如下配置(注意注释第二行):

 


use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;/*** @ApiResource()* @ApiFilter(SearchFilter::class, properties={"resourceGroup":"exact","fileName":"partial"})* @ORM\Entity(repositoryClass="App\Repository\DocumentResourceRepository")*/
class DocumentResource
{
// ...
}

 * exact 精确查找   partial 模糊查找 *

于是这样的api就已经创建成功了:

结果:

3、序列化器

上面接口返回的json里某些属性值是类似 "/api/users/1" 这样,如果想只直接获取到对象的属性的值就需要用到序列化器了。

直接上图直观对比:

序列化器文档:https://api-platform.com/docs/core/serialization/

 

其他的后面用到再更啦。。。

-----最后更新于 2020-8-19

 

 

http://www.lryc.cn/news/2416809.html

相关文章:

  • 清除电脑各种使用记录不留痕迹,保护你的隐私!
  • jquery插件treeTable
  • 在Node.js版本v12.16.2中,`crypto`模块提供了加密功能的实现接口
  • 免费获取天气预报代码
  • 叉乘证明贝祖定理_谈方琳定理
  • oracle中exist什么意思,oracle中not exists 是什么意思 , oracle数据库中exists的作用
  • Nagios 安装教程
  • HS6621低功耗调试(HS6621CG)
  • QQ如何设置使用代理服务器?
  • 提权进阶篇
  • [从零学习汇编语言] - 计算机中的硬件与软件
  • 【爬虫】批量下载B站收藏夹视频 - Python
  • 动态IP?静态IP?看完本文你就懂了
  • 系统提示uxtheme.dll文件缺少出现错误问题
  • xvid编解码器安装
  • Solidity随笔
  • Ant 命令详解
  • C语言入门代码库,模拟显示数字时钟
  • 要解决蓝牙连接故障,不可忽略蓝牙驱动程序
  • VTK中坐标转换
  • redis三大集群使用看这篇就差不多了 | 主从哨兵Cluster
  • jsp中的request.getContextPath()
  • 【技术网站分享】全面整理了一波技术网站,分享给大家!
  • linux版drastic模拟器设置,DraStic nds模拟器下载安装及使用图文教程
  • oracle 错误 20001,LANG=c 引发的 ORA-20001 问题
  • 51CTO下载中心 移动开发的资料库
  • Filter2------原理
  • C#编写一个简易通讯录
  • ActiveX开发详解
  • 硬盘写入缓存