You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2024/12/29 04:04:00 UTC

[jira] [Updated] (SOLR-16396) Cosmetic improvements and migration to JAX-RS (config, configset APIs)

     [ https://issues.apache.org/jira/browse/SOLR-16396?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

ASF GitHub Bot updated SOLR-16396:
----------------------------------
    Labels: newdev pull-request-available  (was: newdev)

> Cosmetic improvements and migration to JAX-RS (config, configset APIs)
> ----------------------------------------------------------------------
>
>                 Key: SOLR-16396
>                 URL: https://issues.apache.org/jira/browse/SOLR-16396
>             Project: Solr
>          Issue Type: Sub-task
>          Components: v2 API
>    Affects Versions: main (10.0)
>            Reporter: Jason Gerlowski
>            Priority: Major
>              Labels: newdev, pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> 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|https://docs.google.com/spreadsheets/d/1HAoBBFPpSiT8mJmgNZKkZAPwfCfPvlc08m5jz3fQBpA/edit?usp=sharing], 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 config (read and write/overlay) and configset CRUD APIs, as described in the spreadsheet above.  For convenience and easier tracking, the APIs are also summarized in the table below:
> *Cosmetic Changes and JAX-RS Conversion*
> ||API Name||Original Form||Desired Form||Status||Volunteer||
> |List Paramsets|GET /api/collections/collName/config/params|GET /api/collections/collName/config/paramsets|Open|N/A|
> |Get Single Paramset|GET /api/collections/collName/config/params/paramSetName|GET /api/collections/collName/config/paramsets/paramSetName|Open|N/A|
> |List Request Handlers|GET /api/collections/collName/config/requesthandler|GET /api/collections/collName/config/requesthandlers|Open|N/A|
> |Create Request Handler|POST /api/collections/collName/config \{"add-requesthandler": \{...\}\}|PUT /api/collections/collName/config/requestHandlers/rhPath \{...\}|Open|N/A|
> |Update Request Handler|POST /api/collections/collName/config \{"update-requesthandler": \{...\}\}|PUT /api/collections/collName/config/requestHandlers/rhPath \{...\}|Open|N/A|
> |Delete Request Handler|POST /api/collections/collName/config \{"delete-requesthandler": \{...\}\}|DELETE /api/collections/collName/config/requestHandlers/rhPath|Open|N/A|
> |List Search Components|GET /api/collections/collName/config/searchcomponent|GET /api/collections/collName/config/searchcomponents|Open|N/A|
> |Create Search Component|POST /api/collections/collName/config \{"add-searchcomponent": \{...\}\}|PUT /api/collections/collName/config/searchcomponents/scName \{...\}|Open|N/A|
> |Update Search Component|POST /api/collections/collName/config \{"update-searchcomponent": \{...\}\}|PUT /api/collections/collName/config/searchcomponents/scName \{...\}|Open|N/A|
> |Delete Request Handler|POST /api/collections/collName/config \{"delete-searchcomponent": \{...\}\}|DELETE /api/collections/collName/config/searchcomponents/scName|Open|N/A|
> |List Query Response Writers|GET /api/collections/collName/config/queryresponsewriter|GET /api/collections/collName/config/queryresponsewriters|Open|N/A|
> |Create Query Response Writer|POST /api/collections/collName/config \{"add-queryresponsewriter": \{...\}\}|PUT /api/collections/collName/config/queryresponsewriters/responseWriterName \{...\}|Open|N/A|
> |Delete Query Response Writer|POST /api/collections/collName/config \{"delete-queryresponsewriter": \{...\}\}|DELETE /api/collections/collName/config/queryresponsewriters/responseWriterName|Open|N/A|
> |Create Init Params|POST /api/collections/collName/config \{"add-initparams": \{...\}\}|PUT /api/collections/collName/config/initParams/initParamName \{...\}|Open|N/A|
> |Update Init Params|POST /api/collections/collName/config \{"update-initparams": \{...\}\}|PUT /api/collections/collName/config/initParams/initParamName \{...\}|Open|N/A|
> |Delete Init Params|POST /api/collections/collName/config \{"delete-initparams": \{...\}\}|DELETE /api/collections/collName/config/initParams/initParamName|Open|N/A|
> |List Listeners|GET /api/collections/collName/config/listener|GET /api/collections/collName/config/listeners|Open|N/A|
> |Create Listener|POST /api/collections/collName/config \{"add-listener": \{...\}\}|PUT /api/collections/collName/config/listeners/listenerName \{...\}|Open|N/A|
> |Update Listener|POST /api/collections/collName/config \{"update-listener": \{...\}\}|PUT /api/collections/collName/config/listeners/listenerName \{...\}|Open|N/A|
> |Delete Listener|POST /api/collections/collName/config \{"delete-listener": \{...\}\}|DELETE /api/collections/collName/config/listeners/listenerName|Open|N/A|
> |Create Query Parser|POST /api/collections/collName/config \{"add-queryparser": \{...\}\}|PUT /api/collections/collName/config/queryparsers/queryParserName \{...\}|Open|N/A|
> |Update Query Parser|POST /api/collections/collName/config \{"update-queryparser": \{...\}\}|PUT /api/collections/collName/config/queryparsers/queryParserName \{...\}|Open|N/A|
> |Delete Query Parser|POST /api/collections/collName/config \{"delete-queryparser": \{...\}\}|DELETE /api/collections/collName/config/queryparsers/queryParserName|Open|N/A|
> |Create Common Property|POST /api/collections/collName/config \{"set-property": \{"propName": "propValue"\}\}|PUT /api/collections/collName/config/properties/propertyName \{"value": "propVal"\}|Open|N/A|
> |Delete Common Property|POST /api/collections/collName/config \{"unset-property": "propName"\}|DELETE /api/collections/collName/config/properties/propertyName|Open|N/A|
> |Set User Property|POST /api/collections/collName/config \{"set-user-property": \{"propName": "val"\}\}|PUT /api/collections/collName/config/userproperties/propertyName \{"value": "propVal"\}|Open|N/A|
> |Delete User Property|POST /api/collections/collName/config \{"unset-user-property": "propName"\}|DELETE /api/collections/collName/config/userproperties/propertyName|Open|N/A|
> |Create Value Source Parser|POST /api/collections/collName/config \{"add-valuesourceparser": \{...\}\}|PUT /api/collections/collName/config/valueSourceParser/vspName \{...\}|Open|N/A|
> |Update Value Source Parser|POST /api/collections/collName/config \{"update-valuesourceparser": \{...\}\}|PUT /api/collections/collName/config/valueSourceParser/vspName \{...\}|Open|N/A|
> |Delete Value Source Parser|POST /api/collections/collName/config \{"delete-valuesourceparser": \{...\}\}|DELETE /api/collections/collName/config/valueSourceParser/vspName|Open|N/A|
> |Create Transformer|POST /api/collections/collName/config \{"add-transformer": \{...\}\}|PUT /api/collections/collName/config/transformers/transformerName \{...\}|Open|N/A|
> |Update Transformer|POST /api/collections/collName/config \{"update-transformer": \{...\}\}|PUT /api/collections/collName/config/transformers/transformerName \{...\}|Open|N/A|
> |Delete Transformer|POST /api/collections/collName/config \{"delete-transformer": \{...\}\}|DELETE /api/collections/collName/config/transformers/transformerName|Open|N/A|
> |Create Update-Processor|POST /api/collections/collName/config \{"add-updateprocessor": \{...\}\}|PUT /api/collections/collName/config/updateProcessors/updateProcessorName \{...\}|Open|N/A|
> |Update Update-Processor|POST /api/collections/collName/config \{"update-updateprocessor": \{...\}\}|PUT /api/collections/collName/config/updateProcessors/updateProcessorName \{...\}|Open|N/A|
> |Delete Update-Processor|POST /api/collections/collName/config \{"delete-updateprocessor": \{...\}\}|DELETE /api/collections/collName/config/updateProcessors/updateProcessorName|Open|N/A|
> |Create Query Converter|POST /api/collections/collName/config \{"add-queryconverter": \{...\}\}|PUT /api/collections/collName/config/queryconverters/queryConverterName \{...\}|Open|N/A|
> |Update Query Converter|POST /api/collections/collName/config \{"update-queryconverter": \{...\}\}|PUT /api/collections/collName/config/queryconverters/queryConverterName \{...\}|Open|N/A|
> |Delete Query Converter|POST /api/collections/collName/config \{"delete-queryconverter": \{...\}\}|DELETE /api/collections/collName/config/queryconverters/queryConverterName|Open|N/A|
> |Create Expressible|POST /api/collections/collName/config \{"add-expressible": \{...\}\}|PUT /api/collections/collName/config/expressibles/expressibleName \{...\}|Open|N/A|
> |Update Expressible|POST /api/collections/collName/config \{"update-expressible": \{...\}\}|PUT /api/collections/collName/config/expressibles/expressibleName \{...\}|Open|N/A|
> |Delete Expressible|POST /api/collections/collName/config \{"delete-expressible": \{...\}\}|DELETE /api/collections/collName/config/expressibles/expressibleName|Open|N/A|
> |Delete Configset|DELETE /api/cluster/configs/configsetName|DELETE /api/configsets/configsetName|Open|N/A|
> *Only Cosmetic Changes (i.e. already JAX-RS)*
> ||API Name||Original Form||Desired Form||Status||Volunteer||
> |List Configsets|GET /api/cluster/configs|GET /api/configsets|Open|N/A|
> 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|https://docs.google.com/spreadsheets/d/1HAoBBFPpSiT8mJmgNZKkZAPwfCfPvlc08m5jz3fQBpA/edit?usp=sharing]
> * [Discussion of how APIs work in Solr (video)|https://www.youtube.com/watch?v=iIpvfXBjDog]
> * [Step-by-step guide to creating APIs|https://github.com/apache/solr/blob/main/dev-docs/apis.adoc#writing-jax-rs-apis] using the JAX-RS v2 API framework



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org