Skip to main content

Add FAIR signpostings to response headers

Project description

FAIR signposting for Django

django_signposting is a Django middleware library that facilitates the addition of FAIR signposting headers to HTTP responses. This middleware helps in making your data more FAIR (Findable, accessible, interoperable, reuseable) by embedding signposting headers in responses, guiding clients to relevant resources linked to the response content.

Features

  • Automatically adds signposting headers to HTTP responses.
  • Supports multiple relation types with optional media type specification.
  • Easily integrable with existing Django applications.

Installation

pip install django_signposting

Usage

1. Add Middleware

Add the middleware to your Django project's MIDDLEWARE setting in settings.py:

MIDDLEWARE = [
    ...,
    'django_signposting.middleware.SignpostingMiddleware',
    ...,
]

2. Add Signposts to your Views

You can add signposting headers in your Django views using the provided add_signposts utility function. Here's how you can use it:

from django.http import HttpResponse
from django_signposting.util import add_signposts

def my_view(request):
    response = HttpResponse("Hello, world!")
    
    # Add signpostings as string
    add_signposts(response,
                  type="https://schema.org/Dataset",
                  author="https://orcid.org/0000-0001-9447-460X")

    return response

Multiple links with the same link type can be added as lists and the content type of a link can be defined by using tuples:

from django.http import HttpResponse
from django_signposting.util import add_signposts

def my_view(request):
    response = HttpResponse("Hello, world!")

    # Add signpostings as string
    add_signposts(response,
                  type="https://schema.org/Dataset",
                  author="https://orcid.org/0000-0001-9447-460X",
                  item=[
                      ("https://example.com/image.png", "image/png"),
                      ("https://example.com/download.zip", "application/zip")
                  ])

    return response

3. Signposts are formatted and added as Link headers by the middleware:

curl -I https://example.com
HTTP/2 200 
...
link: <https://schema.org/Dataset> ; rel="type" ,
      <https://orcid.org/0000-0001-9447-460X> ; rel="author" ,
      <https://example.com/image.png> ; rel="item" ; type="application/json+ld"

License

Licensed under the MIT License.

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

django_signposting-0.9.0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

django_signposting-0.9.0-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file django_signposting-0.9.0.tar.gz.

File metadata

  • Download URL: django_signposting-0.9.0.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for django_signposting-0.9.0.tar.gz
Algorithm Hash digest
SHA256 651bd33c77eab75e6044d03b460a638e360e9a8039c8bf70f9ee691a9ca65c06
MD5 7e3d341fde5e126b1117cd9801dcb4b6
BLAKE2b-256 189f9a14d4b631822eb8bd772991cc1a9f80f1abcd373085897ad2f6d6bed9c2

See more details on using hashes here.

File details

Details for the file django_signposting-0.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_signposting-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 27bb9aebc0638741795a24ad126bedf6b204fc8a73bed124c61d0fb309325eb2
MD5 78b31cdf4d128b23f1a2b728c6a5dd69
BLAKE2b-256 dc5bdfa5d0673dadb1f515990e34ac8a990a31723053f23dbc7aa37f72cf2ec1

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