ftm-pm/symfony-api

此包已被弃用,不再维护。未建议替代包。

SymfonyApi 配置了用于创建 REST API 的组件。

安装: 7

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:项目

0.1.0 2018-03-25 06:06 UTC

This package is not auto-updated.

Last update: 2020-01-24 17:41:44 UTC


README

SymfonyApi 配置了用于创建 REST API 的组件。

俄语文档 在此处

设置

SymfonyApi 是一个包含组件的 symfony/skeleton 应用程序

安装

运行 Composer 命令创建新项目

composer create-project ftm-pm/symfony-api my-project

配置

安装后,您需要设置环境变量。您可以在 .env 文件中查看变量。

下一步,运行命令更新数据库。

php bin/console d:s:u --force

SymfonyApi 使用 JWT 开发了授权。您可以在此处查看文档。

要创建新用户,您可以使用任何 REST 客户端。您应该向 http://my-project/api/register 发送带有参数的新请求

{
  "username": "johndoe",
  "password": "test",
  "email": "johndoe@example.com"
}

或使用 curl

curl -X POST http://my-project/api/register -d username=johndoe -d password=test -d email=johndoe@example.com

确认电子邮件后,获取令牌。向 http://my-project/api/token 发送新请求

{
  "username": "johndoe",
  "password": "test"
}

或使用 curl

curl -X POST http://my-project/api/token -d username=johndoe -d password=test

SymfonyApi 返回两个字段

{
  "token": "...",
  "id": "...",
  "refresh_token": "..."
}

对于授权,您必须在任何请求中发送头信息:Authorization: Bearer your_token。

使用

SymfonyApi 上开发的 REST API 使用 api-platform 组件。您可以在此处查看完整文档。

例如

  • 序列化过程
  • 事件系统
  • 数据提供者
  • 安全
  • 以及其他

SymfonyApi 功能

SymfonyApi 包含

  • 认证(登录、注册、getToken、refreshToken)
  • 本地化逻辑
  • media-server 项目集成

认证

对于在应用程序中组织用户,没有使用 FOSUserBundle。与用户相关的必要部分已被移植,与事件、个人账户和其他不必要信息相关的所有部分都被跳过了。

如果您想使用 FOSUserBundle,您可以删除与用户相关的所有文件,包括 FOSUserBundle 并配置 security.yaml。

使用 JWT 进行认证。您可以在此处查看文档。

本地化

Gedmo Translatable 在 SymfonyApi 上实现本地化。为了使 api-platform 返回翻译,实体类必须实现 Gedmo\Translatable\Translatable 接口。

翻译字段将看起来像

{
  "translations": {
     "ru": {
        "field1": "value1",
        "field2": "value2"
     },
     "en": {
         "field1": "value1"
     }
  }
}

同样,为了保存翻译,您必须将 translations 参数添加到查询中。

需要注意的是,Gedmo Translatable 不会重复翻译。如果应用程序将英语设置为默认语言,则字段 translations 英文将不会。例如

{
  "name": "English Name",
  "translations": {
     "ru": {
        "name": "Russian Wonderful Name"
     }
  }
}

这可以通过将数据复制到 App\Handler\Translation 中来修复。

包含内容

  • api-platform/core
  • doctrine/annotations
  • gedmo/doctrine-extensions
  • gesdinet/jwt-refresh-token-bundle
  • gfreeau/get-jwt-bundle
  • guzzlehttp/guzzle
  • lexik/jwt-authentication-bundle
  • nelmio/cors-bundle
  • symfony/asset
  • symfony/console
  • symfony/expression-language
  • symfony/flex
  • symfony/framework-bundle
  • symfony/lts
  • symfony/maker-bundle,
  • symfony/orm-pack
  • symfony/swiftmailer-bundle
  • symfony/twig-bundle
  • symfony/validator
  • symfony/yaml

反馈

许可证 MIT