项目包管理器

安装: 0

依赖项: 0

建议者: 0

安全: 0

星星: 0

观察者: 2

分支: 0

开放问题: 1

类型:项目

1.0.0 2020-02-28 06:31 UTC

This package is auto-updated.

Last update: 2024-09-12 20:44:35 UTC


README

Codacy Badge

项目安装

通过Composer

composer create-project thomas-claireau/bilemo:dev-master

如果直接下载项目(或使用git clone),请在项目根目录执行composer install

然后安装项目的前端依赖(用于启动api-platform界面)。请位于项目根目录

npm install

注意

数据库访问

该项目在Packagist上发布时没有数据库。这意味着您需要添加配置,在.env文件中的DATABASE_URL部分。

SQL注入和项目结构

为了获得与我的项目在数据库层面的类似结构,我还附带了在~src/Migrations/文件夹中的迁移版本。因此,您可以通过以下命令在项目根目录中重建数据库:

php bin/console doctrine:migrations:migrate

创建数据库后,您还可以通过以下命令注入数据集

php bin/console doctrine:fixtures:load

启动项目

在项目根目录

  • 要启动开发服务器,请执行npm run dev-server
  • 要启动symfony服务器,请执行php bin/console server:run

身份验证

在此阶段,您对API的请求将被拒绝,因为您没有在项目中进行身份验证。请按照以下步骤操作

1. 为Json Web Token (JWT)生成SSH密钥

2. 获取或创建账户

在项目的fixtures中(src/DataFixtures),添加您自己的账户。

您也可以使用以下账户

3. 生成JWT

curl -X POST -H "Content-Type: application/json" http://bilemo.thomas-claireau.fr/authentication_token -d "{\"email\":\"YOUR_EMAIL\",\"password\":\"YOUR_PASSWORD\"}"

将YOUR_EMAIL替换为您的邮箱(例如:root@root.fr)和YOUR_PASSWORD替换为您的密码(例如:root)

您应该得到以下结果

{
	"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE1ODI4NzA2NzEsImV4cCI6MTU4Mjg3NDI3MSwicm9sZXMiOlsiUk9MRV9BRE1JTiJdLCJlbWFpbCI6InJvb3RAcm9vdC5mciJ9.J4lnq2gxrrKY5MB39AGvVYlM7ezYvTcgI-ITBdjxXNAu-5ePTqYdW6-SaJLyZCXdDeUXFi0An89oPVHIRgzdifLyav5CLxUnkX_aDQcxD4Gnh3pLJnOeRb7zBGN7XR8ZUG1raG6S84ZrIzdANCkz-xq24Z1F-ahPd30SxmgV0GNFh5bH7pzfgaJflhpi0KMWdL1dUJgK788UGJvVW7FYNcm9SsR3h3-wCd33bcJ1h60f4QQ-xxEMCZihfEhIvMmotcA1r"
}

4. 使用JWT执行操作

获取生成的令牌以开始使用Bilemo的API。

curl -H "Authorization: Bearer {yourtoken}" {yourdomain}/api/{entrypoint}

要了解所有可用的entrypoints,请查看项目演示 👋

背景

BileMo是一家提供各种高端智能手机的公司。

您负责开发BileMo公司的智能手机展示。BileMo的业务模式不是直接在其网站上销售产品,而是向所有希望这样做的平台提供通过API(应用程序编程接口)访问目录的权限。因此,这是B2B(企业对企业)的独家销售。

因此,您需要公开一系列API,以便其他平台的Web应用能够执行操作。

客户需求

第一位客户终于与BileMo签订了合作协议!现在是战斗的号角,以满足第一位客户的需求,这将有助于立即实施和测试所有API。

经过与客户的密集会议,确定了一些信息。必须能够

查阅BileMo产品列表;查阅BileMo产品详情;查阅与客户关联的网站用户列表;查阅与客户关联的注册用户详情;添加与客户关联的新用户;删除客户添加的用户。只有被引用的客户才能访问API。API客户必须通过Oauth或JWT进行认证。

您可以选择部署Oauth服务器并调用它(使用FOSOAuthServerBundle)或使用Facebook、Google或LinkedIn。如果您决定使用JWT,您需要验证令牌的有效性;允许使用库。

数据展示

BileMo的第一个合作伙伴要求很高:它要求您按照Richardson模型1、2和3的规则公开数据。它要求您以JSON格式提供数据。如果可能的话,客户希望将响应缓存起来,以优化对API的请求性能。

✔️ 项目已验证