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.2.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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

Hashes for polywrap_http_plugin-0.1.2.tar.gz
Algorithm Hash digest
SHA256 50502b79fcf6a75f0d580ec572dc77b42bdb65c8f9b7e650993274268c6c32c3
MD5 8a6df5c1c2b59871cace0eaf9a5e13dc
BLAKE2b-256 c0541d10a0d4a32f3fef3d91ba420f4cfae942c145350b303e2bad7b8c9e2294

See more details on using hashes here.

File details

Details for the file polywrap_http_plugin-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for polywrap_http_plugin-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8692ad1978d44703af5e5bb512445b61a8e0c71db60f0eec2241287e4dd6ed50
MD5 cac4a81356c918f5edda3f5bfb1ca9ce
BLAKE2b-256 a6b4c941be6cc432e98f72684dd4400191d1e69a7c883ea57a110b326b18d3ae

See more details on using hashes here.

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