Serhiy Bzhezytskyy created SOLR-18491:
-----------------------------------------

             Summary: Ref Guide: show a v2 form wherever only v1 is shown
                 Key: SOLR-18491
                 URL: https://issues.apache.org/jira/browse/SOLR-18491
             Project: Solr
          Issue Type: Sub-task
          Components: documentation
            Reporter: Serhiy Bzhezytskyy


Many pages of the Ref Guide show an API call only in its v1 form 
(`/solr/admin/...`, `/solr/{collection}/...`), even though a v2 endpoint for it 
exists and works. A reader who wants to use the v2 API cannot find out how from 
the guide, and the v2 API is where the project is heading (SOLR-18459, 
SOLR-18469).

To see how big the gap is, I went through every API call in the guide (commit 
56ec140): 535 v1 calls, 408 with no v2 form in their own section. I compared 
each with the "Solr v2 API Proposed Changes" sheet (current vs proposed form) 
and with a running node:

* 172 are `/select` and `/query` search examples with a v2 route. A v2 tab on 
every search example is a style question, so I'd leave them for now.
* 38, on 15 pages, have a v2 route and the same form in the sheet as current 
and proposed. I ran the v2 form of each on a live node: 36 work (some with 
sample data in place of the page's fictional fields or configsets). These can 
get a v2 tab now.
* 34 have a v2 route, but the sheet proposes a different form (config writes, 
`update/json` and `update/csv` as one `/update` by Content-Type, copy-field, 
some collection and core commands). Those wait for the migration.
* 60 have a working v2 route that the sheet leaves open or doesn't list (plain 
`/update`, whose proposal is marked `???`, writes to `config/params`, 
`CLUSTERSTATUS`, metrics, replication, `terms`, bulk schema).
* 67 have no v2 route (managed resources like stopwords and synonyms, 
`/stream`, `/sql`, `/admin/luke`, `update/json/docs`). These are a gap in the 
API rather than in the guide and stay v1-only.
* 37 are not verified (the handler is not configured in the test collection).

What I'd like to do: add the V1/V2 tabs the rest of the guide already uses to 
the 36 that are ready, with strict JSON bodies and the curl style from 
SOLR-18460, and run each v2 example on a node before it goes in. Pages that are 
being changed by other work (the curl-style cleanup, the schema API and the 
authorization API) would come last, so that the tabs are not written twice. The 
60 can follow once someone confirms the form.

The 38 per page, with the v2 API the page does not show:

|| page || v2 API missing from the page ||
| exporting-result-sets | `GET /api/collections/{c}/export` (3 examples) |
| schemaless-mode | `GET /api/collections/{c}/schema/fields`, `PUT`/`DELETE` 
for fields, field types and dynamic fields, `GET …/schema/copyfields` |
| schema-api | `GET /api/collections/{c}/schema`, `PUT …/schema/fields/{name}`, 
`POST …/schema/bulk` |
| tutorial-films | `POST /api/collections`, `PUT …/schema/fields/{name}`, `POST 
…/schema/bulk` |
| tutorial-opennlp, tutorial-paramsets, tutorial-vectors | `PUT 
…/schema/fields/{name}`, `POST …/schema/bulk` |
| solr-in-docker | `POST /api/collections` |
| alias-management | `POST /api/aliases` |
| coreadmin-api | `POST /api/cores` † |
| cluster-node-management | `PUT /api/cluster/properties/{name}`, `POST 
/api/collections/{c}/balance-shard-unique`, `GET /api/cluster/overseer` |
| replica-management | `POST …/shards/{s}/replicas`, `PUT 
…/replicas/{r}/properties/{p}` (4 examples) |
| collection-management | backups: `GET /api/backups/{b}/versions`, `POST 
…/restore`, `DELETE …/versions/{id}`, `DELETE …/versions?maxNumBackupPoints=` 
†, `PUT …/purgeUnused` |
| rule-based-authorization-plugin | `POST /api/cluster/security/authorization` 
(5 examples) |
| jwt-authentication-plugin | `GET /api/node/system` |

† held back for now; the other 36 are ready.




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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to