Skip to main content

HTTP Request and Response Service

Project description

httpbin(1): HTTP Request & Response Service

This is a fork of the original httpbin project, which is located at https://github.com/postmanlabs/httpbin

Why fork? we were unable to get ahold of the folks at postmanlabs to maintain the original project, and httpbin is used for other packages within the python ecosystem, such as pytest-httpbin which is in turn used by packages such as requests so we have forked this package. That means that httpbin.org is not actually backed by this repo, but the httpbin package is. Confusing right? Know anyone at postmanlabs? get in touch.

httpbin is a Kenneth Reitz Project. ice cream

Downloading and Running

docker pull ghcr.io/psf/httpbin
docker run -p 80:8080 ghcr.io/psf/httpbin

Using httpbin as a Library

httpbin can be used as a dependency in your own projects by simply adding httpbin as a dependency.

Manually Building the Latest Docker Image

To build the Docker image yourself, download the latest Dockerfile and requirements.txt files from the release page. Store both file in the same folder and run:

docker build --build-arg APP_VERSION=<your-version> [other docker args] .

Alternatively, you can re-generate a new requirements.txt file using pip-compile. In that case, be aware that the code has not been tested against those dependencies and we cannot guarantee that such an image will run without errors.

Where APP_VERSION will be stored in a docker-label. The default value is an empty-string.

Maintenance

"Extra" Dependencies

The project provides two "extras" which contain dependencies that should only be installed for specific use-cases. They will not be included when using httpbin as a dependency, unless they are explicitly requested like httpbin[mainapp].

  • mainapp: Includes everything needed to run httpbin as a standalone app. This is used by the docker image.
  • test: Includes additional dependencies for unit-testing. This is only used during development.

Publishing a new Release

Releases (both docker and pypi) are automated via GitHub Actions (See #17).

For pypi releases, the project uses trusted-publishing via the official GitHub action.

For releases on docker-hub (when enabled in the CI), the following two secrets are required:

  • DOCKERHUB_USERNAME
  • DOCKERHUB_TOKEN

Releases are triggered on commits tagged with release- (for example release-0.10.0).

Changelog

  • 0.10.3:
    • Fixed the /bytes endpoint to return bytes (not bytearray) for WSGI compliance with newer Werkzeug, thanks @swt2c
    • Dropped support for Python 3.7
    • Build and publish arm64 Docker images
  • 0.10.2:
    • Added support for Flask 3.0
  • 0.10.1:
    • Substantial housekeeping, dependency cleanup, image building, and packaging revamp, thanks to @exhuma and @mgorny
  • 0.10.0:
    • Override docker image port with HTTPBIN_PORT
    • A number of fixes for code rot, thanks @mgorny and @tjni
  • 0.9.2: ??? (never published as a package; seems to be internal to postman)
  • 0.7.0: ???
  • 0.6.2: ???
  • 0.6.0: ???
  • 0.5.0
    • Allow /redirect-to to work with multiple methods
    • Allow MD5 or SHA-256 to be chosen as algorithms for HTTP Digest Auth
    • Set a 10MB limit on /drip
  • 0.4.1: Added floating-point support for /delay endpoint
  • 0.4.0: New /image/svg endpoint, add deploy to heroku button, add 406 response to /image, and don’t always emit the transfer-encoding header for stream endpoint.
  • 0.3.0 A number of new features, including a /range endpoint, lots of bugfixes, and a /encoding/utf8 endpoint
  • 0.2.0: Added an XML endpoint. Also fixes several bugs with unicode, CORS headers, digest auth, and more.
  • 0.1.2: Fix a couple Python3 bugs with the random byte endpoints, fix a bug when uploading files without a Content-Type header set.
  • 0.1.1: Added templates as data in setup.py
  • 0.1.0: Added python3 support and (re)publish on PyPI

Officially Deployed (but out of date) at:

SEE ALSO

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

httpbin-0.10.3.tar.gz (107.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

httpbin-0.10.3-py2.py3-none-any.whl (100.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file httpbin-0.10.3.tar.gz.

File metadata

  • Download URL: httpbin-0.10.3.tar.gz
  • Upload date:
  • Size: 107.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for httpbin-0.10.3.tar.gz
Algorithm Hash digest
SHA256 d416896e83a56823ae2f418178566f42e2f240019b61e2f391830436bbb89806
MD5 bb8cfdc6f78a1567932fe314df4a1ae8
BLAKE2b-256 57def6c4a278aa8e18e6ecd80200bfa701651c0c92f24fb5d8ba9b9dcad81f6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for httpbin-0.10.3.tar.gz:

Publisher: publish.yml on psf/httpbin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file httpbin-0.10.3-py2.py3-none-any.whl.

File metadata

  • Download URL: httpbin-0.10.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 100.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for httpbin-0.10.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b6aa147d2f9638b80867990af0fa880d1695115de475211f12ee4242314def56
MD5 b21c548ae004ec3f09b602e90a020d05
BLAKE2b-256 7ae6b0a57ce201d8504534b4605c90721be7ed905d02f87847673e5d5fdfe4d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for httpbin-0.10.3-py2.py3-none-any.whl:

Publisher: publish.yml on psf/httpbin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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