Skip to main content

MeiliSearch integration with FastAPI

Project description

MeiliSearch FastAPI

CI Status pre-commit.ci status Coverage PyPI 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 fast api app and naviate to the docs http://127.0.0.1:8000/docs replacing hte url with the correct url for your app.

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.1.0.post1.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

meilisearch_fastapi-0.1.0.post1-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file meilisearch-fastapi-0.1.0.post1.tar.gz.

File metadata

  • Download URL: meilisearch-fastapi-0.1.0.post1.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.9.5 Linux/5.4.0-1047-azure

File hashes

Hashes for meilisearch-fastapi-0.1.0.post1.tar.gz
Algorithm Hash digest
SHA256 dd5967ab44cfe741ee035dd4f28f6819c7f84e83cd8a3aafaeb02dd7469cbfbf
MD5 9d1110a35a852a13b2d333669626b078
BLAKE2b-256 91ea9a51429d7d6f7e5941639778cf0aed2724126b2af2e91e0318c13379fdb3

See more details on using hashes here.

File details

Details for the file meilisearch_fastapi-0.1.0.post1-py3-none-any.whl.

File metadata

File hashes

Hashes for meilisearch_fastapi-0.1.0.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 4d833dcb20b111dd6833f1aeb4f9fb94cf2d8e475098e21eb3f5d3207002c127
MD5 8d4887e9d4832e414be03752d5f01927
BLAKE2b-256 915e5b84d2b263dbcf738e540a86201f35136f0799a5f1b8773027a486e4e43f

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