[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/srepmub/FastAPI-JSONAPI/main/docs/api_filtering_example.rst [Back]  [Original]

Filtering API example
======================

.. literalinclude:: ../examples/custom_filter_example.py
    :language: python


Filter by jsonb contains. Before using the filter, you must define it and apply it
to the schema as shown here :ref:`custom_sql_filtering`. Some useful  filters are
defined in module **fastapi_jsonapi.types_metadata.custom_filter_sql.py**

.. code-block:: json

    [
      {
        "name": "words",
        "op": "sqlite_json_contains",
        "val": {"location": "Moscow", "spam": "eggs"}
      }
    ]

Request:

.. literalinclude:: ./http_snippets/snippets/api_filtering__get_users__filter_word_contains_in_array
  :language: HTTP

Response:

.. literalinclude:: ./http_snippets/snippets/api_filtering__get_users__filter_word_contains_in_array_result
  :language: HTTP


Other examples
--------------

.. code-block:: python

    # pseudo-code

    class User:
        name: str = ...
        words: list[str] = ...


Filter by word

.. code-block:: json

    [
      {
        "name": "words",
        "op": "in",
        "val": "spam"
      }
    ]

Request:

.. literalinclude:: ./http_snippets/snippets/api_filtering__get_users__filter_word_in_array
  :language: HTTP

Response:

.. literalinclude:: ./http_snippets/snippets/api_filtering__get_users__filter_word_in_array_result
  :language: HTTP


Filter by words

.. code-block:: json

    [
      {
        "name": "words",
        "op": "in",
        "val": ["bar", "eggs"]
      }
    ]

Request:

.. literalinclude:: ./http_snippets/snippets/api_filtering__get_users__filter_words_in_array
  :language: HTTP

Response:

.. literalinclude:: ./http_snippets/snippets/api_filtering__get_users__filter_words_in_array_result
  :language: HTTP

Web Proxy Viewer  |  New URL  |  Original Page