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 require 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 import 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 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.

MEILISEARCH_URL=http://localhost:7700  # This is the url for your instance of MeiliSearch
MEILISEARCH_API_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.21.0 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.8.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

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

meilisearch_fastapi-0.8.0-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: meilisearch-fastapi-0.8.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.8 CPython/3.9.6 Linux/5.8.0-1039-azure

File hashes

Hashes for meilisearch-fastapi-0.8.0.tar.gz
Algorithm Hash digest
SHA256 7aa4b0df1f0705f80f4acd6af6f304fc5f715a63c5f7c7423ce0fdf318649816
MD5 4beee4c4ae2b4c30f811333ace7234ca
BLAKE2b-256 af8b290993a81316e75907ad18e700c490aba46aa2aba30b4b3ae7a7e0c5841b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: meilisearch_fastapi-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.8 CPython/3.9.6 Linux/5.8.0-1039-azure

File hashes

Hashes for meilisearch_fastapi-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1626f3e476de2346e3772e650feaf30212f7cd6608e204887123f07d6e899eb0
MD5 eb0cd046429a63d89d4b24b86cadbf5f
BLAKE2b-256 922e6160a6435455daf09a0eba486dc16971bbb2913bb8eec1a9bc7877931c42

See more details on using hashes here.

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