diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-17 03:53:08 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-17 03:53:08 +0000 |
commit | cd5796652a054063bf2de1a9d3d03154f536ff90 (patch) | |
tree | b0cf513507e722b9c71b54e1120a241c3661caff | |
parent | 4e320f6dfe64fa962dd1cfe50fa29ff9bf805972 (diff) |
automatic import of python-perseus-restful-api-framework
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-perseus-restful-api-framework.spec | 470 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 472 insertions, 0 deletions
@@ -0,0 +1 @@ +/perseus_restful_api_framework-1.26.8.tar.gz diff --git a/python-perseus-restful-api-framework.spec b/python-perseus-restful-api-framework.spec new file mode 100644 index 0000000..96ead3d --- /dev/null +++ b/python-perseus-restful-api-framework.spec @@ -0,0 +1,470 @@ +%global _empty_manifest_terminate_build 0 +Name: python-perseus-restful-api-framework +Version: 1.26.8 +Release: 1 +Summary: Python server framework for quickly building RESTful APIs with minimal effort +License: Proprietary +URL: https://github.com/majormode/perseus-restful-api-server-framework +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/80/72/6a2628fda2ee20de41514a51916001d12eb60a0d744948a158e0b495038d/perseus_restful_api_framework-1.26.8.tar.gz +BuildArch: noarch + +Requires: python3-psutil +Requires: python3-tornado +Requires: python3-perseus-core-library +Requires: python3-pillow +Requires: python3-perseus-microrm-library +Requires: python3-prosoponym +Requires: python3-perseus-getenv-library +Requires: python3-pymemcache + +%description +# Perseus: RESTful API Server Framework + +Perseus is a Python framework for quickly building RESTful API servers with minimal effort. + +Perseus provides an initial set of core services that supports the following features: + +- Client application registration with API keys generation +- Client application access control with RESTful request signature +- Client application and RESTful API server version compatibility check +- User authentication and session management +- Team/group management +- RESTful request logging with data sensitiveness support +- RESTful service automatic discovery +- HTTP request query parameters & body JSON message automatically parsing (depending on the HTTP method used) with data type check and conversion + +Perseus is based on [Tornado](https://www.tornadoweb.org/) for handling client network connection. + +## RESTful API Request Handler + +```python +from majormode.perseus.service.base_http_handler import HttpRequest +from majormode.perseus.service.base_http_handler import HttpRequestHandler +from majormode.perseus.service.base_http_handler import http_request + +import AttendantService + + +class AttendantServiceHttpRequestHandler(HttpRequestHandler): + @http_request(r'^/attendant/session$', + http_method=HttpRequest.HttpMethod.POST, + authentication_required=False, + sensitive_data=True, + signature_required=False) + def sign_in(self, request): + email_address = request.get_argument( + 'email_address', + data_type=HttpRequest.ArgumentDataType.email_address, + is_required=True) + + password = request.get_argument( + 'password', + data_type=HttpRequest.ArgumentDataType.string, + is_required=True) + + return AttendantService().sign_in(request.app_id, email_address, password) +``` + +## Configure the environment variables + +```env +# Copyright (C) 2021 Majormode. All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# Connection properties of the RESTful API server instances. Defaults +# to 127.0.0.1:8081. +API_SERVER_HOSTNAME=127.0.0.1 +API_SERVER_PORTS= + +# Root path of the Network File System (NFS) -- referring to the +# distributed file system (not the protocol) -- where the Content +# Delivery Network (CDN) files are stored into, such as avatars, etc. +CDN_NFS_ROOT_PATH= + +# Hostname of the Content Delivery Network (CDN) server that hosts media +# files such as avatars, etc. +CDN_URL_HOSTNAME= + +# Environment stage of the API server instances. Possible values are: +# +# - dev +# - int +# - staging +# - prod +# +# Defaults to `dev`. +ENVIRONMENT_STAGE= + +# Connection properties to a Memcached server (a distributed memory +# object caching system). Defaults to 127.0.0.1:11211. +MEMCACHED_HOSTNAME = '127.0.0.1' +MEMCACHED_PORT = 11211 + +# Threshold for the logger to level. Logging messages which are less +# severe than the specified level will be ignored; logging messages +# which have this severity level or higher will be emitted. Possible +# values are: +# +# - debug +# - info +# - warning +# - error +# - critical +# +# Default to 'debug'. +LOGGING_LEVEL= + +# Environment variables to select default parameter values to connect +# to PostgreSQL Relational Database Management System. +PG_HOSTNAME=localhost +PG_PORT=5432 +PG_DATABASE_NAME= +PG_USERNAME= +PG_PASSWORD= +``` + +## Run the RESTful API Server Processes + +```bash +$ fab start --port=65180,65181,... +``` + +Hashtags/Topics: `#perseus` `#restful` `#api` `#server` `#framework` `#python` + + +%package -n python3-perseus-restful-api-framework +Summary: Python server framework for quickly building RESTful APIs with minimal effort +Provides: python-perseus-restful-api-framework +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-perseus-restful-api-framework +# Perseus: RESTful API Server Framework + +Perseus is a Python framework for quickly building RESTful API servers with minimal effort. + +Perseus provides an initial set of core services that supports the following features: + +- Client application registration with API keys generation +- Client application access control with RESTful request signature +- Client application and RESTful API server version compatibility check +- User authentication and session management +- Team/group management +- RESTful request logging with data sensitiveness support +- RESTful service automatic discovery +- HTTP request query parameters & body JSON message automatically parsing (depending on the HTTP method used) with data type check and conversion + +Perseus is based on [Tornado](https://www.tornadoweb.org/) for handling client network connection. + +## RESTful API Request Handler + +```python +from majormode.perseus.service.base_http_handler import HttpRequest +from majormode.perseus.service.base_http_handler import HttpRequestHandler +from majormode.perseus.service.base_http_handler import http_request + +import AttendantService + + +class AttendantServiceHttpRequestHandler(HttpRequestHandler): + @http_request(r'^/attendant/session$', + http_method=HttpRequest.HttpMethod.POST, + authentication_required=False, + sensitive_data=True, + signature_required=False) + def sign_in(self, request): + email_address = request.get_argument( + 'email_address', + data_type=HttpRequest.ArgumentDataType.email_address, + is_required=True) + + password = request.get_argument( + 'password', + data_type=HttpRequest.ArgumentDataType.string, + is_required=True) + + return AttendantService().sign_in(request.app_id, email_address, password) +``` + +## Configure the environment variables + +```env +# Copyright (C) 2021 Majormode. All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# Connection properties of the RESTful API server instances. Defaults +# to 127.0.0.1:8081. +API_SERVER_HOSTNAME=127.0.0.1 +API_SERVER_PORTS= + +# Root path of the Network File System (NFS) -- referring to the +# distributed file system (not the protocol) -- where the Content +# Delivery Network (CDN) files are stored into, such as avatars, etc. +CDN_NFS_ROOT_PATH= + +# Hostname of the Content Delivery Network (CDN) server that hosts media +# files such as avatars, etc. +CDN_URL_HOSTNAME= + +# Environment stage of the API server instances. Possible values are: +# +# - dev +# - int +# - staging +# - prod +# +# Defaults to `dev`. +ENVIRONMENT_STAGE= + +# Connection properties to a Memcached server (a distributed memory +# object caching system). Defaults to 127.0.0.1:11211. +MEMCACHED_HOSTNAME = '127.0.0.1' +MEMCACHED_PORT = 11211 + +# Threshold for the logger to level. Logging messages which are less +# severe than the specified level will be ignored; logging messages +# which have this severity level or higher will be emitted. Possible +# values are: +# +# - debug +# - info +# - warning +# - error +# - critical +# +# Default to 'debug'. +LOGGING_LEVEL= + +# Environment variables to select default parameter values to connect +# to PostgreSQL Relational Database Management System. +PG_HOSTNAME=localhost +PG_PORT=5432 +PG_DATABASE_NAME= +PG_USERNAME= +PG_PASSWORD= +``` + +## Run the RESTful API Server Processes + +```bash +$ fab start --port=65180,65181,... +``` + +Hashtags/Topics: `#perseus` `#restful` `#api` `#server` `#framework` `#python` + + +%package help +Summary: Development documents and examples for perseus-restful-api-framework +Provides: python3-perseus-restful-api-framework-doc +%description help +# Perseus: RESTful API Server Framework + +Perseus is a Python framework for quickly building RESTful API servers with minimal effort. + +Perseus provides an initial set of core services that supports the following features: + +- Client application registration with API keys generation +- Client application access control with RESTful request signature +- Client application and RESTful API server version compatibility check +- User authentication and session management +- Team/group management +- RESTful request logging with data sensitiveness support +- RESTful service automatic discovery +- HTTP request query parameters & body JSON message automatically parsing (depending on the HTTP method used) with data type check and conversion + +Perseus is based on [Tornado](https://www.tornadoweb.org/) for handling client network connection. + +## RESTful API Request Handler + +```python +from majormode.perseus.service.base_http_handler import HttpRequest +from majormode.perseus.service.base_http_handler import HttpRequestHandler +from majormode.perseus.service.base_http_handler import http_request + +import AttendantService + + +class AttendantServiceHttpRequestHandler(HttpRequestHandler): + @http_request(r'^/attendant/session$', + http_method=HttpRequest.HttpMethod.POST, + authentication_required=False, + sensitive_data=True, + signature_required=False) + def sign_in(self, request): + email_address = request.get_argument( + 'email_address', + data_type=HttpRequest.ArgumentDataType.email_address, + is_required=True) + + password = request.get_argument( + 'password', + data_type=HttpRequest.ArgumentDataType.string, + is_required=True) + + return AttendantService().sign_in(request.app_id, email_address, password) +``` + +## Configure the environment variables + +```env +# Copyright (C) 2021 Majormode. All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# Connection properties of the RESTful API server instances. Defaults +# to 127.0.0.1:8081. +API_SERVER_HOSTNAME=127.0.0.1 +API_SERVER_PORTS= + +# Root path of the Network File System (NFS) -- referring to the +# distributed file system (not the protocol) -- where the Content +# Delivery Network (CDN) files are stored into, such as avatars, etc. +CDN_NFS_ROOT_PATH= + +# Hostname of the Content Delivery Network (CDN) server that hosts media +# files such as avatars, etc. +CDN_URL_HOSTNAME= + +# Environment stage of the API server instances. Possible values are: +# +# - dev +# - int +# - staging +# - prod +# +# Defaults to `dev`. +ENVIRONMENT_STAGE= + +# Connection properties to a Memcached server (a distributed memory +# object caching system). Defaults to 127.0.0.1:11211. +MEMCACHED_HOSTNAME = '127.0.0.1' +MEMCACHED_PORT = 11211 + +# Threshold for the logger to level. Logging messages which are less +# severe than the specified level will be ignored; logging messages +# which have this severity level or higher will be emitted. Possible +# values are: +# +# - debug +# - info +# - warning +# - error +# - critical +# +# Default to 'debug'. +LOGGING_LEVEL= + +# Environment variables to select default parameter values to connect +# to PostgreSQL Relational Database Management System. +PG_HOSTNAME=localhost +PG_PORT=5432 +PG_DATABASE_NAME= +PG_USERNAME= +PG_PASSWORD= +``` + +## Run the RESTful API Server Processes + +```bash +$ fab start --port=65180,65181,... +``` + +Hashtags/Topics: `#perseus` `#restful` `#api` `#server` `#framework` `#python` + + +%prep +%autosetup -n perseus-restful-api-framework-1.26.8 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-perseus-restful-api-framework -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 17 2023 Python_Bot <Python_Bot@openeuler.org> - 1.26.8-1 +- Package Spec generated @@ -0,0 +1 @@ +6f3f23f29003b4507dee52c97324b06a perseus_restful_api_framework-1.26.8.tar.gz |