diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-29 10:10:15 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-29 10:10:15 +0000 |
| commit | fe6140165fb205ee6a0236eef2881c98c31ccb05 (patch) | |
| tree | d88a6c2b58cbce3f498a394c48780688c39dac1e /python-pspring-rest-client.spec | |
| parent | 9661218bf5bf376c37c6a1b01d2a407c92707aaf (diff) | |
automatic import of python-pspring-rest-client
Diffstat (limited to 'python-pspring-rest-client.spec')
| -rw-r--r-- | python-pspring-rest-client.spec | 247 |
1 files changed, 247 insertions, 0 deletions
diff --git a/python-pspring-rest-client.spec b/python-pspring-rest-client.spec new file mode 100644 index 0000000..53af025 --- /dev/null +++ b/python-pspring-rest-client.spec @@ -0,0 +1,247 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pspring-rest-client +Version: 0.2.3 +Release: 1 +Summary: A rest client for easier life +License: TBD +URL: https://github.com/vasudevan-palani/pspring-rest-client +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/04/53/cdd1cad8a45904834229cb668d64e0314c391e750a870b9826fed019d586/pspring-rest-client-0.2.3.tar.gz +BuildArch: noarch + +Requires: python3-pspring + +%description +# pspring-rest-client + +This framework is member of pspring based family of frameworks. It provides a means to create rest clients with minimal code. `requests` library is used internally for http requests. + +Annotations / Decorators that come along with this framework are listed below + +* `@RestClient(url="")` + This decorator will add few boiler plate code that is required to interact with any rest endpoint. The methods significant are `send`, `getUrl`, `addHeader`. + + The `send` method would accept all arguments that `requests.request` method would. This method will throw `PayloadException` for all not HTTP 200 responses. The `PayloadException` has `response` and `statusCode` attributes which can be further used for error handling. + The `addHeader(name,value)` method would add an header + The `getUrl` will get the url that is configured along with `@RestClient` decorator. + The `handleError` method is exists on the object will be invoked when received a non http 200 response. + +* `@Mapping(method="",url="")` + This decorator will take care of replacing parameters in the url from arguments passed, send the request and return the response + +Useful classes in this framework + +`RegExResponseMapper` - this class can be used to tranform one dictionary to another using regex. An example is shown below. The source dictionary fields can be accessed using `$` notation. In the below example `message` is a field inside the `response dictionary. +```python +regexmapper = RegExResponseMapper({ + ".*Customer does not exist.*" : { + "statusCode" : "404", + "code" : "APS-1001", + "message" : "$response.message" + }, + ".*" : { + "statusCode" : "500", + "code" : "APS-1002", + "message" : "$response.message" + } +}) + +@RestClient(url="https://myapi.com") +class MyRestClient(): + + @Mapping(method="GET",url="/user/{firstName}") + def getCustomer(self,firstName): + pass + + @Mapping(method="POST",url="/user/",data=json) + def saveCustomer(self): + pass + + @Mapping(method="POST",url="/user/") + def saveCustomer(self,customer): + self.json=customer + + def handleError(self,response): + return regexmapper.map(response) +``` + +Documentation at [pspring-rest-client](https://vasudevan-palani.github.io/pspring-rest-client/) + + To do: + + * To return objects based on the return type from the response received. + + +%package -n python3-pspring-rest-client +Summary: A rest client for easier life +Provides: python-pspring-rest-client +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pspring-rest-client +# pspring-rest-client + +This framework is member of pspring based family of frameworks. It provides a means to create rest clients with minimal code. `requests` library is used internally for http requests. + +Annotations / Decorators that come along with this framework are listed below + +* `@RestClient(url="")` + This decorator will add few boiler plate code that is required to interact with any rest endpoint. The methods significant are `send`, `getUrl`, `addHeader`. + + The `send` method would accept all arguments that `requests.request` method would. This method will throw `PayloadException` for all not HTTP 200 responses. The `PayloadException` has `response` and `statusCode` attributes which can be further used for error handling. + The `addHeader(name,value)` method would add an header + The `getUrl` will get the url that is configured along with `@RestClient` decorator. + The `handleError` method is exists on the object will be invoked when received a non http 200 response. + +* `@Mapping(method="",url="")` + This decorator will take care of replacing parameters in the url from arguments passed, send the request and return the response + +Useful classes in this framework + +`RegExResponseMapper` - this class can be used to tranform one dictionary to another using regex. An example is shown below. The source dictionary fields can be accessed using `$` notation. In the below example `message` is a field inside the `response dictionary. +```python +regexmapper = RegExResponseMapper({ + ".*Customer does not exist.*" : { + "statusCode" : "404", + "code" : "APS-1001", + "message" : "$response.message" + }, + ".*" : { + "statusCode" : "500", + "code" : "APS-1002", + "message" : "$response.message" + } +}) + +@RestClient(url="https://myapi.com") +class MyRestClient(): + + @Mapping(method="GET",url="/user/{firstName}") + def getCustomer(self,firstName): + pass + + @Mapping(method="POST",url="/user/",data=json) + def saveCustomer(self): + pass + + @Mapping(method="POST",url="/user/") + def saveCustomer(self,customer): + self.json=customer + + def handleError(self,response): + return regexmapper.map(response) +``` + +Documentation at [pspring-rest-client](https://vasudevan-palani.github.io/pspring-rest-client/) + + To do: + + * To return objects based on the return type from the response received. + + +%package help +Summary: Development documents and examples for pspring-rest-client +Provides: python3-pspring-rest-client-doc +%description help +# pspring-rest-client + +This framework is member of pspring based family of frameworks. It provides a means to create rest clients with minimal code. `requests` library is used internally for http requests. + +Annotations / Decorators that come along with this framework are listed below + +* `@RestClient(url="")` + This decorator will add few boiler plate code that is required to interact with any rest endpoint. The methods significant are `send`, `getUrl`, `addHeader`. + + The `send` method would accept all arguments that `requests.request` method would. This method will throw `PayloadException` for all not HTTP 200 responses. The `PayloadException` has `response` and `statusCode` attributes which can be further used for error handling. + The `addHeader(name,value)` method would add an header + The `getUrl` will get the url that is configured along with `@RestClient` decorator. + The `handleError` method is exists on the object will be invoked when received a non http 200 response. + +* `@Mapping(method="",url="")` + This decorator will take care of replacing parameters in the url from arguments passed, send the request and return the response + +Useful classes in this framework + +`RegExResponseMapper` - this class can be used to tranform one dictionary to another using regex. An example is shown below. The source dictionary fields can be accessed using `$` notation. In the below example `message` is a field inside the `response dictionary. +```python +regexmapper = RegExResponseMapper({ + ".*Customer does not exist.*" : { + "statusCode" : "404", + "code" : "APS-1001", + "message" : "$response.message" + }, + ".*" : { + "statusCode" : "500", + "code" : "APS-1002", + "message" : "$response.message" + } +}) + +@RestClient(url="https://myapi.com") +class MyRestClient(): + + @Mapping(method="GET",url="/user/{firstName}") + def getCustomer(self,firstName): + pass + + @Mapping(method="POST",url="/user/",data=json) + def saveCustomer(self): + pass + + @Mapping(method="POST",url="/user/") + def saveCustomer(self,customer): + self.json=customer + + def handleError(self,response): + return regexmapper.map(response) +``` + +Documentation at [pspring-rest-client](https://vasudevan-palani.github.io/pspring-rest-client/) + + To do: + + * To return objects based on the return type from the response received. + + +%prep +%autosetup -n pspring-rest-client-0.2.3 + +%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-pspring-rest-client -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 29 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2.3-1 +- Package Spec generated |
