Description
As mentioned on SOLR-15781, the v2 API currently has an experimental designation, and the community has expressed an interest in using this period to update our v2 endpoints to be more REST-ful and consistent. The current plan is to follow the specific changes laid out in this spreadsheet, though of course nothing there is set in stone and there are still warts to be worked out.
While we're touching the code for these endpoints, we should also convert them to JAX-RS framework definitions. (This was initially tracked as a separate effort - see SOLR-16370 - but the edit that were required ended up overlapping so significantly with the "cosmetic" improvements here that in practice it almost always makes sense to do the two together.)
This ticket plans to tackle making the changes required for Solr's schema read and collection-overlay APIs, as described in the spreadsheet above. For convenience and ease of tracking, these are also summarized in the table(s) below:
Cosmetic Changes and JAX-RS Conversion
API Name | Original Form | Desired Form | Status | Volunteer |
---|---|---|---|---|
Create Field | POST /api/collections/collName/schema {"add-field": {...}} | PUT /api/collections/collName/schema/fields/fieldName {...} | Open | N/A |
Update Field | POST /api/collections/collName/schema {"replace-field": {...}} | PUT /api/collections/collName/schema/fields/fieldName {...} | Open | N/A |
Delete Field | POST /api/collections/collName/schema {"delete-field": {...}} | DELETE /api/collections/collName/schema/fields/fieldName | Open | N/A |
Create Dynamic Field | POST /api/collections/collName/schema {"add-dynamic-field": {...}} | PUT /api/collections/collName/schema/dynamicfields/fieldName {...} | Open | N/A |
Update Dynamic Field | POST /api/collections/collName/schema {"replace-dynamic-field": {...}} | PUT /api/collections/collName/schema/dynamicfields/fieldName {...} | Open | N/A |
Delete Dynamic Field | POST /api/collections/collName/schema {"delete-dynamic-field": {...}} | DELETE /api/collections/collName/schema/dynamicfields/fieldName | Open | N/A |
Create Field Type | POST /api/collections/collName/schema {"add-field-type": {...}} | PUT /api/collections/collName/schema/fieldtypes/fieldTypeName {...} | Open | N/A |
Update Field Type | POST /api/collections/collName/schema {"replace-field-type": {...}} | PUT /api/collections/collName/schema/fieldtypes/fieldTypeName {...} | Open | N/A |
Delete Field Type | POST /api/collections/collName/schema {"delete-field-type": {...}} | DELETE /api/collections/collName/schema/fieldTypes/fieldTypeName | Open | N/A |
Add Copy-field | POST /api/collections/collName/schema {"add-copy-field": {...}} | PUT /api/collections/collName/schema/copyfields/copyFieldName {...} | Open | N/A |
Delete Copy-field | POST /api/collections/collName/schema {"delete-copy-field": {...}} | DELETE /api/collections/collName/schema/copyfields/copyFieldName | Open | N/A |
Bulk Schema Operations | POST /api/collections/collName/schema {"add-field": {...}, "add-field": {...}} | POST /api/collections/collName/schema/bulk [\{...\}, \{...\}] | Open | N/A |
JAX-RS Conversion Only
API Name | Endpoint Format | Status | Volunteer |
---|---|---|---|
Some helpful links related to these changes these changes. Should help get any interested newcomers started!
- For detailed information on Solr's current and desired v2 APIs see the spreadsheet here
- Discussion of how APIs work in Solr (video)
- Step-by-step guide to creating APIs using the JAX-RS v2 API framework
- Example PR for a similar change
Attachments
Issue Links
- is duplicated by
-
SOLR-16376 Convert v2 "Schema" APIs to JAX-RS
- Resolved
- links to