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 | 
