shihua-dashare


Nameshihua-dashare JSON
Version 0.1 PyPI version JSON
download
home_pagehttps://github.com/redblue0216/DaShare
SummaryDaShare is a dataapi python sdk with client and service
upload_time2023-03-14 10:13:35
maintainer
docs_urlNone
authorshihua
requires_python>=3.9.12
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DaShare-数据服务接口包

![shields_version](/static/shields_version.svg)    ![shields_license](/static/shields_license.svg)    ![shields_author](/static/shields_author.svg)    ![shiedls_python](/static/shields_python.svg)

![dasharesymbol](/static/dasharesymbol.JPG)

## 介绍
+ DaShare是一个数据服务接口包,主要功能是为底层数据向外提供了一个接口服务,可实现用户权限验证和流量限制。DaShare采用Client-Server架构设计,服务端使用HTTP协议构建数据服务的OpenAPI,暂时采用GET-method,客户端封装为python-sdk,提供python数据接口功能;用户权限采用token机制。


## 安装
dashare采用Python开发,得益于Python良好的社区环境,安装支持Pythonic风格的各种管理器。
```
	$ pip install dashare-0.1-xxxxxxxxxxxx.whl
```


## 快速指南

### 服务端使用
+ 对于服务端数据服务启动,首先使用dashare命令行进行元数据库初始化,然后再启动服务端服务。以下是dasharectl命令行示例:

```bash
	$ dasharectl set-metadb

	$ dasharectl start-service  
````

### 客户端使用
+ 对于客户端,dashare支持http协议的接口和python-sdk两种方式。

+ http接口使用
1.注册用户示例
```bash
	$ curl http://127.0.0.1:11911/user/register?user=test&password=123456
```
2.登录用户示例
```bash
	$ curl http://127.0.0.1:11911/user/login?user=test&password=123456
```
3.用户生成token示例
```bash
	$ curl http://127.0.0.1:11911/user/gen_token?user=test&token_key=7890
```
4.用户获取token示例
```bash
	$ http://127.0.0.1:11911/user/get_token?user=test&password=123456
```
5.用户调用数据接口示例(用户调用数据接口需要经过前提流程,注册用户-登录用户-生成token-使用token获取数据)
```bash
	$ http://127.0.0.1:11911/meteorological/get_wind_nwp_data_updated?token_key=7890&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NjU1Mzg0MzkuMTU3MTQzLCJ1c2VyIjoidGVzdCJ9.ZXdp688IIJgnFgSqgRx7rXBxYNK0LLDZTuQL_P09saE&entity=XJJX&start_time=2022-05-30,00:00:00&end_time=2022-06-01,00:00:00
```
+ python-sdk使用,以下是dashare主程脚本代码示例:
```python
	from dashare.client.api import DataAPI

	### 设置除了token_key和token外,额外的参数
	tmp_dict = {}
	tmp_dict['entity'] = 'XJJX'
	tmp_dict['start_time'] = '2022-05-30,00:00:00'
	tmp_dict['end_time'] = '2022-06-01,00:00:00'
	dashare = DataAPI(token_key = 7890,
	                    token='eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NjU0NjkxMTQuMTI4MDg4LCJ1c2VyIjoidGVzdCJ9.HgmyjDabinqOxU9v7DaKsPraFZd948SMfA9HGhTg-7U',
	                    timeout=6000)
	# df = dashare.query(dataapi='get_meteorological_data_local',params=tmp_dict)
	# df = dashare.get_wind_nwp_data_updated_local(params=tmp_dict)
	# df = dashare.get_wind_nwp_data_history_local(params=tmp_dict)
	# df = dashare.get_wind_measure_data_local(params=tmp_dict)
	df = dashare.get_wind_turbine_data_local(params=tmp_dict)
	print(df)
```

## 设计
+ 采用Client-Server架构设计
+ 服务端使用HTTP协议构建数据服务的OpenAPI
+ 用户权限采用token机制
+ 用户流量限制

### 技术列表
+ 元编程技术-partial技术
+ 元编程技术-__getattr__技术
+ 微服务-FastAPI
+ 加密验证-Token-JWT技术
+ 数据库-SQLite3


### 设计UML图
以下是设计的UML图:
![dashareuml](/static/DaShareUML.png)




            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/redblue0216/DaShare",
    "name": "shihua-dashare",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9.12",
    "maintainer_email": "",
    "keywords": "",
    "author": "shihua",
    "author_email": "15021408795@163.com",
    "download_url": "https://files.pythonhosted.org/packages/32/f1/533abc66c0b356d1deba9bdd0f5fbd548952c40cf68d82b4980da20b4c53/shihua-dashare-0.1.tar.gz",
    "platform": null,
    "description": "# DaShare-\u6570\u636e\u670d\u52a1\u63a5\u53e3\u5305\n\n![shields_version](/static/shields_version.svg)    ![shields_license](/static/shields_license.svg)    ![shields_author](/static/shields_author.svg)    ![shiedls_python](/static/shields_python.svg)\n\n![dasharesymbol](/static/dasharesymbol.JPG)\n\n## \u4ecb\u7ecd\n+ DaShare\u662f\u4e00\u4e2a\u6570\u636e\u670d\u52a1\u63a5\u53e3\u5305\uff0c\u4e3b\u8981\u529f\u80fd\u662f\u4e3a\u5e95\u5c42\u6570\u636e\u5411\u5916\u63d0\u4f9b\u4e86\u4e00\u4e2a\u63a5\u53e3\u670d\u52a1,\u53ef\u5b9e\u73b0\u7528\u6237\u6743\u9650\u9a8c\u8bc1\u548c\u6d41\u91cf\u9650\u5236\u3002DaShare\u91c7\u7528Client-Server\u67b6\u6784\u8bbe\u8ba1\uff0c\u670d\u52a1\u7aef\u4f7f\u7528HTTP\u534f\u8bae\u6784\u5efa\u6570\u636e\u670d\u52a1\u7684OpenAPI,\u6682\u65f6\u91c7\u7528GET-method,\u5ba2\u6237\u7aef\u5c01\u88c5\u4e3apython-sdk,\u63d0\u4f9bpython\u6570\u636e\u63a5\u53e3\u529f\u80fd\uff1b\u7528\u6237\u6743\u9650\u91c7\u7528token\u673a\u5236\u3002\n\n\n## \u5b89\u88c5\ndashare\u91c7\u7528Python\u5f00\u53d1\uff0c\u5f97\u76ca\u4e8ePython\u826f\u597d\u7684\u793e\u533a\u73af\u5883\uff0c\u5b89\u88c5\u652f\u6301Pythonic\u98ce\u683c\u7684\u5404\u79cd\u7ba1\u7406\u5668\u3002\n```\n\t$ pip install dashare-0.1-xxxxxxxxxxxx.whl\n```\n\n\n## \u5feb\u901f\u6307\u5357\n\n### \u670d\u52a1\u7aef\u4f7f\u7528\n+ \u5bf9\u4e8e\u670d\u52a1\u7aef\u6570\u636e\u670d\u52a1\u542f\u52a8\uff0c\u9996\u5148\u4f7f\u7528dashare\u547d\u4ee4\u884c\u8fdb\u884c\u5143\u6570\u636e\u5e93\u521d\u59cb\u5316,\u7136\u540e\u518d\u542f\u52a8\u670d\u52a1\u7aef\u670d\u52a1\u3002\u4ee5\u4e0b\u662fdasharectl\u547d\u4ee4\u884c\u793a\u4f8b\uff1a\n\n```bash\n\t$ dasharectl set-metadb\n\n\t$ dasharectl start-service  \n````\n\n### \u5ba2\u6237\u7aef\u4f7f\u7528\n+ \u5bf9\u4e8e\u5ba2\u6237\u7aef\uff0cdashare\u652f\u6301http\u534f\u8bae\u7684\u63a5\u53e3\u548cpython-sdk\u4e24\u79cd\u65b9\u5f0f\u3002\n\n+ http\u63a5\u53e3\u4f7f\u7528\n1.\u6ce8\u518c\u7528\u6237\u793a\u4f8b\n```bash\n\t$ curl http://127.0.0.1:11911/user/register?user=test&password=123456\n```\n2.\u767b\u5f55\u7528\u6237\u793a\u4f8b\n```bash\n\t$ curl http://127.0.0.1:11911/user/login?user=test&password=123456\n```\n3.\u7528\u6237\u751f\u6210token\u793a\u4f8b\n```bash\n\t$ curl http://127.0.0.1:11911/user/gen_token?user=test&token_key=7890\n```\n4.\u7528\u6237\u83b7\u53d6token\u793a\u4f8b\n```bash\n\t$ http://127.0.0.1:11911/user/get_token?user=test&password=123456\n```\n5.\u7528\u6237\u8c03\u7528\u6570\u636e\u63a5\u53e3\u793a\u4f8b\uff08\u7528\u6237\u8c03\u7528\u6570\u636e\u63a5\u53e3\u9700\u8981\u7ecf\u8fc7\u524d\u63d0\u6d41\u7a0b\uff0c\u6ce8\u518c\u7528\u6237-\u767b\u5f55\u7528\u6237-\u751f\u6210token-\u4f7f\u7528token\u83b7\u53d6\u6570\u636e\uff09\n```bash\n\t$ http://127.0.0.1:11911/meteorological/get_wind_nwp_data_updated?token_key=7890&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NjU1Mzg0MzkuMTU3MTQzLCJ1c2VyIjoidGVzdCJ9.ZXdp688IIJgnFgSqgRx7rXBxYNK0LLDZTuQL_P09saE&entity=XJJX&start_time=2022-05-30,00:00:00&end_time=2022-06-01,00:00:00\n```\n+ python-sdk\u4f7f\u7528,\u4ee5\u4e0b\u662fdashare\u4e3b\u7a0b\u811a\u672c\u4ee3\u7801\u793a\u4f8b\uff1a\n```python\n\tfrom dashare.client.api import DataAPI\n\n\t### \u8bbe\u7f6e\u9664\u4e86token_key\u548ctoken\u5916\uff0c\u989d\u5916\u7684\u53c2\u6570\n\ttmp_dict = {}\n\ttmp_dict['entity'] = 'XJJX'\n\ttmp_dict['start_time'] = '2022-05-30,00:00:00'\n\ttmp_dict['end_time'] = '2022-06-01,00:00:00'\n\tdashare = DataAPI(token_key = 7890,\n\t                    token='eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NjU0NjkxMTQuMTI4MDg4LCJ1c2VyIjoidGVzdCJ9.HgmyjDabinqOxU9v7DaKsPraFZd948SMfA9HGhTg-7U',\n\t                    timeout=6000)\n\t# df = dashare.query(dataapi='get_meteorological_data_local',params=tmp_dict)\n\t# df = dashare.get_wind_nwp_data_updated_local(params=tmp_dict)\n\t# df = dashare.get_wind_nwp_data_history_local(params=tmp_dict)\n\t# df = dashare.get_wind_measure_data_local(params=tmp_dict)\n\tdf = dashare.get_wind_turbine_data_local(params=tmp_dict)\n\tprint(df)\n```\n\n## \u8bbe\u8ba1\n+ \u91c7\u7528Client-Server\u67b6\u6784\u8bbe\u8ba1\n+ \u670d\u52a1\u7aef\u4f7f\u7528HTTP\u534f\u8bae\u6784\u5efa\u6570\u636e\u670d\u52a1\u7684OpenAPI\n+ \u7528\u6237\u6743\u9650\u91c7\u7528token\u673a\u5236\n+ \u7528\u6237\u6d41\u91cf\u9650\u5236\n\n### \u6280\u672f\u5217\u8868\n+ \u5143\u7f16\u7a0b\u6280\u672f-partial\u6280\u672f\n+ \u5143\u7f16\u7a0b\u6280\u672f-__getattr__\u6280\u672f\n+ \u5fae\u670d\u52a1-FastAPI\n+ \u52a0\u5bc6\u9a8c\u8bc1-Token-JWT\u6280\u672f\n+ \u6570\u636e\u5e93-SQLite3\n\n\n### \u8bbe\u8ba1UML\u56fe\n\u4ee5\u4e0b\u662f\u8bbe\u8ba1\u7684UML\u56fe\uff1a\n![dashareuml](/static/DaShareUML.png)\n\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "DaShare is a dataapi python sdk with client and service",
    "version": "0.1",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "39cd85e38deb8129310db1caaa9423f9a0a4e3ddb8a393020428cf54c8010dec",
                "md5": "c605e19f8aa947ea1856cc58ed52cd41",
                "sha256": "76b7827dcf0ff28d264460c33cb9457d55381c55b105cbff8316bad54cf0c077"
            },
            "downloads": -1,
            "filename": "shihua_dashare-0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c605e19f8aa947ea1856cc58ed52cd41",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9.12",
            "size": 31766,
            "upload_time": "2023-03-14T10:13:33",
            "upload_time_iso_8601": "2023-03-14T10:13:33.548397Z",
            "url": "https://files.pythonhosted.org/packages/39/cd/85e38deb8129310db1caaa9423f9a0a4e3ddb8a393020428cf54c8010dec/shihua_dashare-0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "32f1533abc66c0b356d1deba9bdd0f5fbd548952c40cf68d82b4980da20b4c53",
                "md5": "377d0e117d6c139396b68e7a095814bd",
                "sha256": "49fae818b24d5a5decafb0fe22192bb225930ddc8dd0c27d4e33119ced2fa251"
            },
            "downloads": -1,
            "filename": "shihua-dashare-0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "377d0e117d6c139396b68e7a095814bd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9.12",
            "size": 22757,
            "upload_time": "2023-03-14T10:13:35",
            "upload_time_iso_8601": "2023-03-14T10:13:35.695320Z",
            "url": "https://files.pythonhosted.org/packages/32/f1/533abc66c0b356d1deba9bdd0f5fbd548952c40cf68d82b4980da20b4c53/shihua-dashare-0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-03-14 10:13:35",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "redblue0216",
    "github_project": "DaShare",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "shihua-dashare"
}
        
Elapsed time: 0.11539s