You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: resources/build-integration.md
+15-13
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,18 @@
1
1
# Build an Integration for Meilisearch
2
2
3
-
In order to guarantee consistency and quality across all Meilisearch integrations, we request that you consider the following guidelines when creating a new integration.
3
+
To guarantee consistency and quality across all Meilisearch integrations, we request that you consider the following guidelines when creating a new integration.
4
4
5
-
## 1. Main Principle: User Experience First
5
+
## 1. Leading Principle: User Experience First
6
6
7
-
The integration should take user experience into account: it should be as easy to use and intuitive as possible. In particular, the basic usage of the integration must be accessible.
7
+
The integration should consider user experience: it should be as easy to use and intuitive as possible. In particular, the primary usage of the integration must be accessible.
8
8
9
9
Feel free to [contact us](https://docs.meilisearch.com/learn/what_is_meilisearch/contact.html#contact-us) if you're hesitating over an implementation decision.
10
10
11
11
## 2. README
12
12
13
-
At minimum, the README must contain:
13
+
At a minimum, the README must contain:
14
14
15
-
- A well-explained `Getting Started` section: the user should be able to copy/paste the code and command examples and everything should work as expected.
15
+
- A well-explained `Getting Started` section: the user should be able to copy/paste the code and command examples, and everything should work as expected.
16
16
- Basic code examples for the most common actions.
17
17
18
18
We recommend checking out the READMEs of our other integration repositories, like [this one](https://github.com/meilisearch/meilisearch-ruby/blob/main/README.md).
@@ -23,7 +23,7 @@ All integration repositories must contain a file titled `CONTRIBUTING.md`. The t
23
23
24
24
### 3.1 Docker & Docker-compose
25
25
26
-
The integration should be ready to use with `Docker`, and it must contain a `Docker Compose` file configurated following these patterns:
26
+
To ease the maintenance, the integration should be ready to use with `Docker`, and it must contain a `Docker Compose` file configurated following these patterns:
27
27
- Must have a service `package` and a `meilisearch` service.
28
28
- Must depend and contain a link to `meilisearch` service.
29
29
- The `meilisearch` service should point to `latest` tag.
@@ -68,27 +68,29 @@ The integration should be ready to use with `Docker`, and it must contain a `Doc
68
68
69
69
## 4. Minimal Provided Methods
70
70
71
-
At minimum, your integration must support:
71
+
At a minimum, your integration must support the following:
72
72
73
73
- all functionality related to [document manipulation](https://docs.meilisearch.com/reference/api/documents.html).
74
74
- all functionality related to [search](https://docs.meilisearch.com/reference/api/search.html), including [search parameters](https://docs.meilisearch.com/reference/features/search_parameters.html).
75
75
- a basic error handler that wraps and throws the [Meilisearch errors](https://docs.meilisearch.com/reference/api/#errors-status-code).
76
+
- ensure the correct headers are being sent:
77
+
- the `User-Agent` header should contain this value i.e. `Meilisearch PHP (v1.0.1)`, `Meilisearch Strapi (v1.0.1)`, can also contain more than one: `Meilisearch PHP (v1.0.1); Meilisearch Laravel (v12.1.5);`
76
78
77
-
⚠️ All routes that are not yet implemented in the integration should be clearly reported as an issue in the repository.
79
+
⚠️ All routes not yet implemented in the integration should be reported as an issue in the repository.
78
80
79
81
## 5. Tests
80
82
81
-
Each public method (i.e. the exposed part of the integration) should be tested against the Meilisearch instance. This ensures the provided methods work at any time.
83
+
Each public method (i.e., the exposed part of the integration) should be tested against the Meilisearch instance. This ensures the provided methods work at any time.
82
84
83
-
Mock testing is accepted but should not be prioritized, since it would require regularly updating the mocked server to account for breaking changes.
85
+
Mock testing is accepted but should not be prioritized since it would require regularly updating the mocked server to account for breaking changes.
84
86
85
-
If you want to start writing your own tests and are looking for a reference, you can find tests in most of our repositories, such as [this one](https://github.com/meilisearch/meilisearch-php/).
87
+
If you want to start writing your tests and are looking for a reference, you can find tests in most of our repositories, such as [meilisearch-php](https://github.com/meilisearch/meilisearch-php/) and [meilisearch-js](https://github.com/meilisearch/meilisearch-js/).
86
88
87
89
## 6. Linter and Style
88
90
89
91
Your integration should contain a linter to ease contributions and maintenance.
90
92
91
-
We also recommend to add a [`.editorconfig` file](https://editorconfig.org/) so that everyone can follow minimal styling rules.
93
+
We recommend adding a [`.editorconfig` file](https://editorconfig.org/) so everyone can follow minimal styling rules.
92
94
93
95
## 7. Continuous Integration (CI)
94
96
@@ -105,4 +107,4 @@ The release versioning should follow the [Semantic Versioning Convention](https:
105
107
106
108
---
107
109
108
-
Thank you for reading this through ❤️ Feel free to contact us if you have any questions!
110
+
Thank you for reading this through ❤️ Feel free to contact us with any questions!
0 commit comments