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
    • None

    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 Open N/A
      Get Schema UniqueKey GET /api/collections/collName/schema/uniquekey Open N/A
      Get Schema Version GET /api/collections/collName/schema/version Open N/A
      Get Schema Similarity GET /api/collections/collName/schema/similarity Open N/A
      Get Schema ZkVersion GET /api/collections/collName/schema/zkversion Open N/A
      List All (Non-dynamic) Fields GET /api/collections/collName/schema/fields Open N/A
      Get Single (Non-dynamic) Field GET /api/collections/collName/schema/fields/fieldName Open N/A
      List Copyfields GET /api/collections/collName/schema/copyfields Open N/A
      List All (Dynamic) Fields GET /api/collections/collName/schema/dynamicfields Open N/A
      Get Single (Dynamic) Field GET /api/collections/collName/schema/dynamicfields/fieldName Open N/A
      List All FieldTypes GET /api/collections/collName/schema/fieldtypes Open N/A
      Get Single Fieldtype GET /api/collections/collName/schema/fieldtypes/fieldTypeName Open N/A

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated: