Http plugin for Polywrap Python Client
Project description
This package contains the HTTP plugin.
Http plugin currently supports two different methods GET and POST. Similar to calling axios, when defining request you need to specify a response type. Headers and query parameters may also be defined.
Response Types
TEXT - The server will respond with text, the HTTP plugin will return the text as-is.
BINARY - The server will respond with binary data (_bytes_), the HTTP plugin will encode as a base64 string and return it.
Quickstart
Imports
>>> import json >>> from polywrap_core import Uri >>> from polywrap_client import PolywrapClient >>> from polywrap_client_config_builder import PolywrapClientConfigBuilder >>> from polywrap_http_plugin import http_plugin >>> from polywrap_msgpack import GenericMap
Create a Polywrap client
>>> http_interface_uri = Uri.from_str("wrapscan.io/polywrap/http@1.0") >>> http_plugin_uri = Uri.from_str("plugin/http") >>> config = ( ... PolywrapClientConfigBuilder() ... .set_package(http_plugin_uri, http_plugin()) ... .add_interface_implementations(http_interface_uri, [http_plugin_uri]) ... .set_redirect(http_interface_uri, http_plugin_uri) ... .build() ... ) >>> client = PolywrapClient(config)
Make a GET request
>>> result = client.invoke( ... uri=http_interface_uri, ... method="get", ... args={ ... "url": "https://jsonplaceholder.typicode.com/posts", ... "request": { ... "responseType": "TEXT", ... "urlParams": GenericMap({"id": 1}), ... "headers": GenericMap({"X-Request-Header": "req-foo"}), ... }, ... } ... ) >>> result.get("status") 200
Make a POST request
>>> result = client.invoke( ... uri=http_interface_uri, ... method="post", ... args={ ... "url": "https://jsonplaceholder.typicode.com/posts", ... "request": { ... "responseType": "TEXT", ... "body": json.dumps({ ... "userId": 11, ... "id": 101, ... "title": "foo", ... "body": "bar" ... }), ... "headers": GenericMap({"X-Request-Header": "req-foo"}), ... }, ... } ... ) >>> result.get("status") 201
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file polywrap_http_plugin-0.1.2.tar.gz
.
File metadata
- Download URL: polywrap_http_plugin-0.1.2.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.10.13 Linux/5.15.0-1041-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50502b79fcf6a75f0d580ec572dc77b42bdb65c8f9b7e650993274268c6c32c3 |
|
MD5 | 8a6df5c1c2b59871cace0eaf9a5e13dc |
|
BLAKE2b-256 | c0541d10a0d4a32f3fef3d91ba420f4cfae942c145350b303e2bad7b8c9e2294 |
Provenance
File details
Details for the file polywrap_http_plugin-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: polywrap_http_plugin-0.1.2-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.10.13 Linux/5.15.0-1041-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8692ad1978d44703af5e5bb512445b61a8e0c71db60f0eec2241287e4dd6ed50 |
|
MD5 | cac4a81356c918f5edda3f5bfb1ca9ce |
|
BLAKE2b-256 | a6b4c941be6cc432e98f72684dd4400191d1e69a7c883ea57a110b326b18d3ae |