dunglas / api-platform

此包已被废弃,不再维护。作者建议使用api-platform/api-platform包。

API Platform 框架

维护者

详细信息

github.com/dunglas/api-platform

来源

资助包维护!
dunglas

安装: 805

依赖: 0

建议者: 1

安全: 0

星级: 36

关注者: 9

分支: 951

类型:项目


README

Join the chat at https://gitter.im/api-platform/api-platform

新一代的Web框架

API Platform

官方项目文档可在 API Platform 网站 上找到。

API Platform 是一个下一代PHP Web框架,旨在轻松创建以API为中心的项目,但在可扩展性和灵活性方面没有妥协。

  • 使用我们出色的代码生成器,可以从 Schema.org 词汇表中生成完整功能的数据模型,具有ORM映射和验证(您也可以手动完成)。
  • 在几分钟内公开一个超媒体REST API,它通过重用实体元数据(ORM映射、验证和序列化)而无需额外配置;它支持 JSON-LDHydra,并提供了大量功能(CRUD、验证和错误处理、关系嵌入、筛选、排序等)。
  • 享受强大的自动生成API文档(类似Swagger)。
  • 轻松添加 JSON Web TokenOAuth 认证
  • Behat 上创建一个开发友好的API上下文系统,以创建规范和测试。
  • 使用您首选的客户端技术来开发您的网站UI、Webapp、移动应用或其他您想要的东西!经过测试和批准,与 AngularJS(包含集成)、IonicReact 和本地移动应用兼容。

API Platform 支持 Web 开放标准(JSON-LD、Hydra、JWT、OAuth、HTTP、HTML5...)和 Linked Data 运动。您的API将自动在 Schema.org/JSON-LD 中公开结构化数据。这意味着您的API Platform 应用程序可以直接与语义网技术兼容。

这也意味着您的 SEO 将得到改善,因为 Google 建议这些格式。是的,Google 也爬取全 JavaScript 应用程序 以及传统的应用程序

最后但同样重要的是,API Platform 是建立在 Symfony 全栈框架之上的,并遵循其最佳实践。这意味着您可以

  • 使用与 API Platform 一起的 数千个 Symfony 扩展包
  • 将 API Platform 集成到任何现有的 Symfony 应用程序
  • 重用您所有的 Symfony 技能 并从可用的令人难以置信的大量 Symfony 文档中受益
  • 享受流行的 Doctrine ORM(默认使用,但完全可选:您可以使用您想要的数据提供者,包括但不限于 MongoDB ODM 和 ElasticSearch)

安装

使用Composer创建您的新项目

composer create-project api-platform/api-platform my-api

开始修改

已预装了一个演示应用程序(书店)。

  • 运行app/console server:start,然后在任何HTTP客户端中打开http://localhost:8000以访问API
  • 打开http://localhost:8000/doc来阅读HTML文档并在沙盒中尝试
  • 尝试使用HydraConsole客户端来利用JSON-LD和Hydra功能
  • 使用JavaScript构建您的第一个自定义客户端,CORS头已配置

里面有什么?

API Platform为构建您的项目提供了坚实的基础

  • 模式生成器,它可以从Schema.org类型生成PHP实体,具有Doctrine ORM映射、Symfony验证和扩展PHPDoc
  • API包,可在几分钟内将实体公开为JSON-LD和Hydra功能支持的超媒体REST API
  • NelmioApiDocBundle与API包集成,以自动生成美观的、易于阅读的文档和沙盒来测试API
  • BehatBehatch配置,以轻松测试API
  • 利用Symfony框架及其生态系统的全部力量
  • Doctrine ORM/DBAL
  • 一个AppBundle,您可以开始编写代码
  • 为所有内容启用了注解
  • Swiftmailer和Twig创建美丽的电子邮件

它预配置了以下包

  • Symfony - API Platform建立在全栈Symfony框架之上
  • API Platform的API包 - 创建强大的超媒体API,支持JSON-LD和Hydra
  • NelmioCorsBundle - 支持CORS头
  • NelmioApiDocBundle - 生成易于阅读的文档
  • FosHttpCacheBundle - 添加强大的缓存功能,支持Varnish、Nginx和内置的PHP反向代理
  • SensioFrameworkExtraBundle - 添加了几个增强功能,包括模板和路由注解功能
  • DoctrineBundle - 添加了对Doctrine ORM的支持
  • TwigBundle - 添加了对Twig模板引擎的支持(在电子邮件中很有用)
  • SecurityBundle - 通过集成Symfony的安全组件进行身份验证和角色管理
  • SwiftmailerBundle - 添加了对Swiftmailer的支持,这是一个用于发送电子邮件的库
  • MonologBundle - 添加了对Monolog的支持,这是一个日志库
  • WebProfilerBundle(在开发/测试环境中) - 添加了分析功能和网络调试工具栏
  • SensioDistributionBundle(在开发/测试环境中) - 添加了配置和使用Symfony分发的功能
  • SensioGeneratorBundle (在开发/测试环境中) - 添加代码生成功能

API Platform 包含的所有库和捆绑包均在 MIT 或 BSD 许可下发布。

身份验证支持

Json Web Token 是一种轻量级且流行的方式,可以无状态地处理身份验证。安装 LexikJWTAuthenticationBundle 以向 API Platform 添加 JWT 支持。

使用 FOSOAuthServerBundle 也可以轻松添加 OAuth 支持。

验证发布签名

API Platform 项目发布的软件可以使用以下 GPG 公共签名通过 git 进行验证

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

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
xA==
=RO9E
-----END PGP PUBLIC KEY BLOCK-----

享受吧!

致谢

Kévin Dunglas 创建。由 Les-Tilleuls.coop 赞助。如有需要,可提供商业支持。