Jump to content

Search API V3: Difference between revisions

Add security note, further API information
m (Minor changes)
(Add security note, further API information)
Line 33: Line 33:


Given the relatively low resource usage, we could likely use more nodes. For now, it is suggested to monitor resource usage, and add nodes (and increase the replication factor) if needed.  
Given the relatively low resource usage, we could likely use more nodes. For now, it is suggested to monitor resource usage, and add nodes (and increase the replication factor) if needed.  
X-Pack security will be turned off, as we do not need to encrypt any communication to Elasticsearch or between the nodes. This simplifies the setup and install of elasticvue (below). If this index was used for more sensitive data in the future, this decision should be revisited. 


=== Monitoring ===
=== Monitoring ===
Line 66: Line 68:


=== API Overview ===
=== API Overview ===
Each API will return a maximum of 100 items. These APIs should also be unit tested. After these API changes are done, they should be exposed in the docs.
These APIs will:
 
* Return a maximum of 100 items
* Require robust unit tests
* [https://openfoodfacts.github.io/api-documentation/#3SEARCHRequests Require documentation]
* [https://github.com/openfoodfacts/openfoodfacts-server/tree/111e0afdbac3c20ea34652b0b413be58be6dfae5/conf/nginx Need to be exposed in the Nginx configuration]


The proposed API definition is below. Note that the requests are represented as Python objects as used in FastAPI - in reality, this is a JSON payload:
The proposed API definition is below. Note that the requests are represented as Python objects as used in FastAPI - in reality, this is a JSON payload:
Line 148: Line 155:
* TODO:
* TODO:
** Proposal alignment
** Proposal alignment
** Commit to OFF repo
** OFF-search repo creation, initial commit
** Finish API implementation
** Finish API implementation
** Redis reader
** Redis reader
** Deploy (without any traffic)
** Deploy (without any traffic) - will need assistance for this, as well as Nginx configuration
** Redis writer on the Perl side
** Redis writer on the Perl side
** Final testing
** Final testing
** Document API
** Document API
** Ongoing monitoring
** Ongoing monitoring
17

edits