Skip to main content

No project description provided

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("wrap://ens/wraps.eth:http@1.0.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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

polywrap_http_plugin-0.1.0b5.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

polywrap_http_plugin-0.1.0b5-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file polywrap_http_plugin-0.1.0b5.tar.gz.

File metadata

  • Download URL: polywrap_http_plugin-0.1.0b5.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.12 Linux/5.15.0-1042-azure

File hashes

Hashes for polywrap_http_plugin-0.1.0b5.tar.gz
Algorithm Hash digest
SHA256 72ac4a35486a0951d5e710667e7b8dc7e1864ba907f9403d6428cfccb73136e9
MD5 080e0022935307e95c1c0764b3b83227
BLAKE2b-256 6d7febbac3c57afdb08d4023d5b76fe08aa530ce9bb8a059fb7f82e92f743f1f

See more details on using hashes here.

Provenance

File details

Details for the file polywrap_http_plugin-0.1.0b5-py3-none-any.whl.

File metadata

File hashes

Hashes for polywrap_http_plugin-0.1.0b5-py3-none-any.whl
Algorithm Hash digest
SHA256 23f346ad3b07298ab75e45168212ac25d0cfb2554f8bb0c15fed28f2e6a9fd98
MD5 3423521634c09c642b172b6b62aeb292
BLAKE2b-256 8405238ae2f1eee94c018ce80e3d733e5667c6e24b9763f9d31ce3eb6030e1ac

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page