Skip to main content

Meilisearch integration with FastAPI

Project description

Meilisearch FastAPI

CI Status pre-commit.ci status Coverage PyPI version PyPI - Python Version

Meilisearch FastAPI provides FastAPI routes for interacting with Meilisearch.

Installation

Using a virtual environmnet is recommended for installing this package. Once the virtual environment is created and activated install the package with:

pip install meilisearch-fastapi

Useage

Routes are split in groups so that different dependencies can be injected, and therefore different levels of access, can be given to different groups of routes.

Example with no authentication required for routes

from fastapi import APIRouter, FastAPI
from meilisearch_fastapi.routes import (
    document_routes,
    index_routes,
    meilisearch_routes,
    search_routes,
    settings_routes,
)

app = FastAPI()
api_router = APIRouter()
api_router.include_router(document_routes.router, prefix="/documents")
api_router.include_router(index_routes.router, prefix="/indexes")
api_router.include_router(meilisearch_routes.router, prefix="/meilisearch")
api_router.include_router(search_routes.router, prefix="/search")
api_router.include_router(settings_routes.router, prefix="/settings")

app.include_router(api_router)

Example with routes requiring authentication

from fastapi import APIRouter, FastAPI
from meilisearch_fastapi.routes import (
    document_routes,
    index_routes,
    meilisearch_routes,
    search_routes,
    settings_routes,
)

from my_app import my_authentication

app = FastAPI()
api_router = APIRouter()
api_router.include_router(document_routes.router, prefix="/documents", dependeincies=[Depends(my_authentication)])
api_router.include_router(index_routes.router, prefix="/indexes", dependeincies=[Depends(my_authentication)])
api_router.include_router(meilisearch_routes.router, prefix="/meilisearch", dependeincies=[Depends(my_authentication)])
api_router.include_router(search_routes.router, prefix="/search", dependeincies=[Depends(my_authentication)])
api_router.include_router(settings_routes.router, prefix="/settings", dependeincies=[Depends(my_authentication)])

app.include_router(api_router)

The url for Meilisearch, weather an https address should be used, and API key are read from environment variables. Putting these into a .env file will keep you from having to set these variables each time the terminal is restarted.

MEILI_HTTP_ADDR=localhost:7700  # This is the url for your instance of Meilisearch
MEILI_HTTPS_URL=true  # Setting this specifies the address should be https://. If false or not included the address will be http://
MEILI_MASTER_KEY=masterKey  # This is the API key for your Meilisearch instance

Now the Meilisearch routes will be available in your FastAPI app. Documentation for the routes can be viewed in the OpenAPI documentation of the FastAPI app. To view this start your FastAPI app and naviate to the docs http://localhost:8000/docs replacing the url with the correct url for your app.

Compatibility with Meilisearch

This package only guarantees the compatibility with version v0.28 of Meilisearch.

Contributing

Contributions to this project are welcome. If you are interesting in contributing please see our contributing guide

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

meilisearch-fastapi-0.17.0.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

meilisearch_fastapi-0.17.0-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file meilisearch-fastapi-0.17.0.tar.gz.

File metadata

  • Download URL: meilisearch-fastapi-0.17.0.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.9.13 Linux/5.15.0-1014-azure

File hashes

Hashes for meilisearch-fastapi-0.17.0.tar.gz
Algorithm Hash digest
SHA256 3027733248b734a3806bf2090272bdc4e5af4d4e4ef954bfc30bea51d454f8ae
MD5 872042cdb0241d970d81346c8164addb
BLAKE2b-256 cf33a6180cbbcd8579b287d230b4d7d01b6fce33ab952c51eef97ed17cacb169

See more details on using hashes here.

File details

Details for the file meilisearch_fastapi-0.17.0-py3-none-any.whl.

File metadata

File hashes

Hashes for meilisearch_fastapi-0.17.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8da6864704a8a286f250db94d826ec400079da657be8c36c6952b32720b12f2e
MD5 9bcb00c7773fa35815f5041897212b04
BLAKE2b-256 ffc47f8c60b1b91b7c4e93dd8932ee2fd0eab7b32da80b84976904054c02957e

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