Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lmhfq/easyopen

一个基于Hyperf框架的简单易用的接口开放平台,平台封装了常用的参数校验、结果返回等功能,开发者只需实现业务代码即可。
https://github.com/lmhfq/easyopen

easyopen hyperf openapi

Last synced: 5 days ago
JSON representation

一个基于Hyperf框架的简单易用的接口开放平台,平台封装了常用的参数校验、结果返回等功能,开发者只需实现业务代码即可。

Awesome Lists containing this project

README

        

# easyopen
一个简单易用的接口开放平台,平台封装了常用的参数校验、结果返回等功能,开发者只需实现业务代码即可。

easyopen的功能类似于[淘宝开放平台](http://open.taobao.com/docs/api.htm?spm=a219a.7629065.0.0.6cQDnQ&apiId=4),它的所有接口只提供一个url,通过参数来区分不同业务。这样做的好处是接口url管理方便了,平台管理者只需维护好接口参数即可。由于参数的数量是可知的,这样可以在很大程度上进行封装。封装完后平台开发者只需要写业务代码,其它功能可以通过配置来完成。

## 示例
- 1、定义自己的控制器和网关路由,注入OpenRequestDispatcher 即可
```
dispatch($request);
}
}
```

- 2、定义开发服务类如下,引入OpenService 和 OpenMapping即可
```
select(['appid', 'secret', 'public_key', 'status'])->where(['appid' => $appId])->first();
if (!$data) {
throw new ApplicationDataFetchException(ErrorSubCode::getMessage(ErrorSubCode::INVALID_APP_ID));
}
$this->data = $data;
return $this;
}

/**
* @inheritDoc
*/
public function getSecret(?string $appId = null): string
{
return $this->data['secret'] ?? '';
}

/**
* @inheritDoc
*/
public function getPublicKey(?string $appId = null): string
{
return $this->data['public_key'] ?? '';
}

}
```

- 2、在 config/autoload/dependencies.php 内完成关系配置:
```
\App\Factory\ApplicationDataFetchFactory::class,
];
```

- 3、发布平台密钥配置文件
```
php bin/hyperf.php vendor:publish lmh/easyopen
```