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

Cosmetic improvements and migration to JAX-RS (schema 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 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
      Get Entire Schema GET /api/collections/collName/schema Finished Bence Szabo
      Get Schema UniqueKey GET /api/collections/collName/schema/uniquekey Finished Bence Szabo
      Get Schema Version GET /api/collections/collName/schema/version Finished Bence Szabo
      Get Schema Similarity GET /api/collections/collName/schema/similarity Finished Bence Szabo
      Get Schema ZkVersion GET /api/collections/collName/schema/zkversion Finished Bence Szabo
      List All (Non-dynamic) Fields GET /api/collections/collName/schema/fields Finished Bence Szabo
      Get Single (Non-dynamic) Field GET /api/collections/collName/schema/fields/fieldName Finished Bence Szabo
      List Copyfields GET /api/collections/collName/schema/copyfields Finished Bence Szabo
      List All (Dynamic) Fields GET /api/collections/collName/schema/dynamicfields Finished Bence Szabo
      Get Single (Dynamic) Field GET /api/collections/collName/schema/dynamicfields/fieldName Finished Bence Szabo
      List All FieldTypes GET /api/collections/collName/schema/fieldtypes Finished Bence Szabo
      Get Single Fieldtype GET /api/collections/collName/schema/fieldtypes/fieldTypeName Finished Bence Szabo

      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:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 3h 50m
                  3h 50m