初识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

symfony快速构建restfull api--api-platform初体验(快速上手笔记)的更多相关文章

  1. 《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <五> NSDicionary + NSMutableDictionary

    int main(int argc, const char * argv[]) { @autoreleasepool { //字典, 存储的内存不是连续的 用key和value进行对应(键值) //k ...

  2. grunt 构建工具(build tool)初体验

    操作环境:win8 系统,建议使用 git bash (window下的命令行工具) 1,安装node.js 官网下载:https://nodejs.org/  直接点击install ,会根据你的操 ...

  3. [Ajax] AJAX初体验之-在博客中添加无刷新搜索

    现在博客很流行,相信应该上网时间稍微长点的朋友都会在这或者在那的有一个自己的博客.对于一些有一定能力的朋友,可能更喜欢自己去下载一个博客程序来架设一个自己的博客,而不是使用一些博客网站提供的服务.而大 ...

  4. php 使用 restler 框架构建 restfull api

    php 使用 restler 框架构建 restfull api restler 轻量级,小巧,构建restfull api非常方便! 官网:http://restler3.luracast.com/ ...

  5. 快速构建第三方api应用

    1.使用框架和扩展 详细请看composer.json "php": "^7.1.3", "laravel-admin-ext/config" ...

  6. 爬虫入门系列(三):用 requests 构建知乎 API

    爬虫入门系列目录: 爬虫入门系列(一):快速理解HTTP协议 爬虫入门系列(二):优雅的HTTP库requests 爬虫入门系列(三):用 requests 构建知乎 API 在爬虫系列文章 优雅的H ...

  7. Spring MVC 中使用 Swagger2 构建动态 RESTful API

    当多终端(WEB/移动端)需要公用业务逻辑时,一般会构建 RESTful 风格的服务提供给多终端使用. 为了减少与对应终端开发团队频繁沟通成本,刚开始我们会创建一份 RESTful API 文档来记录 ...

  8. JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识

    JAVA WEB快速入门系列之前的相关文章如下:(文章全部本人[梦在旅途原创],文中内容可能部份图片.代码参照网上资源) 第一篇:JAVA WEB快速入门之环境搭建 第二篇:JAVA WEB快速入门之 ...

  9. Top11 构建和测试API的工具

    立刻像专业人士一样构建API 组织正在改变他们已经在软件应用项目中成功的微服务架构模型,这就是大多数微服务项目使用API(应用程序接口)的原因. 我们要为微服务喝彩,因为它相对于其他的模型有各种先进的 ...

  10. 快速创建Flask Restful API项目

    前言 Python必学的两大web框架之一Flask,俗称微框架.它只需要一个文件,几行代码就可以完成一个简单的http请求服务. 但是我们需要用flask来提供中型甚至大型web restful a ...

随机推荐

  1. Centos7搭建mailx邮件应用

    邮件发送原理图 邮件用户代理(MUA,Mail User Agent)邮件传送代理(MTA,Mail Transport Agent)邮件分发代理(MDA,Mail Deliver Agent) 邮件 ...

  2. Luogu P8112 [Cnoi2021] 符文破译 题解 [ 蓝 ] [ KMP ] [ 线性 dp ] [ 决策单调性 dp ]

    符文破译:KMP + dp 的好题. 暴力 dp 不难打出一个暴力 dp:设计 \(dp_i\) 表示当前前 \(i\) 位全部完成了匹配,所需的最小分割数. 转移也是简单的,我们在 KMP 的过程中 ...

  3. Linux目录管理命令

    1. pwd :显示当前所在目录的路径 1.1 语法格式 pwd #直接按回车键 1.2 实践案例 案例:查看当前所在目录路径 [root@yyds ~]# pwd /root --->显示的是 ...

  4. 螺旋原型设计 (Spiral Model SDLC)

    螺旋模型介绍 -:该模型描述了软件开发过程.该模型是两种模型的组合,首先是迭代模型和一个SDLC 模型,并将其与循环过程相结合. 该模型考虑了大多数其他模型通常没有注意到的风险.该模型从在一次迭代开始 ...

  5. DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求

    DeepSeek 新的 LLM 推理方法 DeepSeek 通过强化学习(RL)提出了一种创新的改进大规模语言模型(LLM)推理能力的方法,这在他们最近关于 DeepSeek-R1 的论文中有详细介绍 ...

  6. Azure - [01] 订阅管理

    题记部分 001 || 核心功能 (1)访问控制   Azure订阅通过基于角色的访问控制(RBAC)系统,允许管理员精细管理用户.组和应用程序对资源的访问权限.RBAC系统通过将权限分配给角色,再将 ...

  7. Zookeeper Java客户端连接慢、超时问题Ad-Hoc检查清单

    TL;DR 排查思路: 首先确认你的设备到zookeeper的连通性是OK的,可通过命令echo srvr | nc HOST 2181,检查是否可以正常打印节点信息.windows用户可以在命令行输 ...

  8. 牛逼了!16.2K Star!推荐一款开源的网络爬虫和浏览器自动化库:Crawlee!

    在当今的互联网世界中,网络爬虫作为一种重要的工具,被广泛应用于数据收集.内容监控.SEO优化以及自动化测试等多个领域.随着技术的不断进步,各种开源的网络爬虫库也应运而生.今天,我向大家推荐一款非常优秀 ...

  9. Kubernetes身份认证资源 —— TokenReview详解

    1.概述 Kubernetes 中的 TokenReview 是用于验证令牌(Token)有效性的一种 API 资源,属于 authentication.k8s.io/v1 API 组.它允许客户端通 ...

  10. PyCharm一直indexing,且永不停止。