Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-15781 Make v2 APIs more REST-ful and migrate to JAX-RS
  3. SOLR-16396

Cosmetic improvements and migration to JAX-RS (config, configset APIs)

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • main (10.0)
    • None
    • v2 API

    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 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!

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              gerlowskija Jason Gerlowski
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: