[ 
https://issues.apache.org/jira/browse/SOLR-16396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17909574#comment-17909574
 ] 

ASF subversion and git services commented on SOLR-16396:
--------------------------------------------------------

Commit fb6d76c9339c8f3b9a3388e9ffcbd3b7992b5389 in solr's branch 
refs/heads/branch_9x from Jason Gerlowski
[ https://gitbox.apache.org/repos/asf?p=solr.git;h=fb6d76c9339 ]

SOLR-16396: Convert v2 configset APIs to JAX-RS (#2928)

Convert v2 configset APIs to JAX-RS.  Naturally this adds the APIs to
Solr's growing v2 OAS, and ensures the APIs are included in code-gen
artifacts.

Also makes slight tweaks to line APIs up with the more REST-ful design
chosen for other v2 APIs.

  - 'clone' (i.e. 'create-from-existing') is now available at `POST
    /api/configsets {...}`
  - 'delete' is now available at `DELETE /api/configsets/csName`
  - 'list' is now available at `GET /api/configsets`

> 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: 0.5h
>  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-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to