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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for django_signposting-0.0.2.tar.gz
Algorithm Hash digest
SHA256 2a4ff21555233bd11823533804559a5381dad8690685a93481c111a2d27d96c7
MD5 91f89127b848e5ee703ef5f7c89aa2f8
BLAKE2b-256 ef0e15a31d2efb23b0133bc7144c6e6fa6da36bb8bad021925867289fc1489bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_signposting-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d4590af681b8ac662e7191dc7f443d05ec36a86a3c5461995bf1657d29b21d63
MD5 bdafbe4ae2e43042264b180c6de27a4f
BLAKE2b-256 97f6f637ebb8aab1ec6fd8e9e342809f60f43d4706d4344da3dc134b602e3324

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