Skip to main content

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


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.0b8.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

polywrap_http_plugin-0.1.0b8-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: polywrap_http_plugin-0.1.0b8.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.10.12 Linux/5.15.0-1041-azure

File hashes

Hashes for polywrap_http_plugin-0.1.0b8.tar.gz
Algorithm Hash digest
SHA256 36e1489ec1e1c97a856d34e55eedea533ad348b46832d11d4634a2c00b68d4a7
MD5 50658d00c0b62df6abf1a39a709a26be
BLAKE2b-256 85fbdcc7efb5279959e97871b4be6485c5f8a663485947593761f7c63c207c13

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for polywrap_http_plugin-0.1.0b8-py3-none-any.whl
Algorithm Hash digest
SHA256 28422ccd9503b8711abeae3192036ade918fc8f695ecbc88f2119412c5484fd0
MD5 ee51a464fca45cb8dbf647e86b35ac5d
BLAKE2b-256 529d1547da0ae62b17837c37042d412e2506718002c1676af800f362fa4b4049

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