writer-jill commented on code in PR #14589:
URL: https://github.com/apache/druid/pull/14589#discussion_r1265476415


##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query

Review Comment:
   Avoid entering a subheading after a heading with preliminary text. Do you 
even need the Queries heading? I think you could just have headings "Submit a 
query" and "Get segments information for a query".



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 
+
+Queries are composed of various JSON properties and Druid has different types 
of queries for different use cases. The possible types of queries are: 
`timeseries`, `topN`, `groupBy`, `timeBoundaries`, `segmentMetadata`, 
`datasourceMetadata`, `scan`, and `search`.
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.

Review Comment:
   ```suggestion
     * Druid returns the response in a pretty-printed format using indentation 
and line breaks.
   ```



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 
+
+Queries are composed of various JSON properties and Druid has different types 
of queries for different use cases. The possible types of queries are: 
`timeseries`, `topN`, `groupBy`, `timeBoundaries`, `segmentMetadata`, 
`datasourceMetadata`, `scan`, and `search`.
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully submitted query* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+The following example submits a JSON query of the `topN` type to retrieve a 
ranked list of users and their post views. 
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"topN\",
+  \"dataSource\": \"social_media\",
+  \"dimension\": \"username\",
+  \"threshold\": 5,
+  \"metric\": \"views\",
+  \"granularity\": \"all\",
+
+  \"aggregations\": [
+    {
+      \"type\": \"longSum\",
+      \"name\": \"views\",
+      \"fieldName\": \"views\"
+    }
+  ],
+  \"intervals\": [
+    \"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"
+  ]
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>
+Content-Type: application/json
+Content-Length: 336
+
+{
+  "queryType": "topN",
+  "dataSource": "social_media",
+  "dimension": "username",
+  "threshold": 5,
+  "metric": "views",
+  "granularity": "all",
+
+  "aggregations": [
+    {
+      "type": "longSum",
+      "name": "views",
+      "fieldName": "views"
+    }
+  ],
+  "intervals": [
+    "2022-01-01T00:00:00.000/2024-01-01T00:00:00.000"
+  ]
+}
+```
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+The following example submits a JSON query of the `groupBy` type to retrieve 
the `username` with the highest upvotes to posts ratio from the `social_media` 
datasource.
+
+In this query:
+* The `upvoteSum` aggregation calculates the sum of the `upvotes` for each 
user.
+* The `postCount` aggregation calculates the sum of posts for each user.
+* The `upvoteToPostRatio` is a post-aggregation of the the `upvoteSum` and the 
`postCount`, divided to calculate the ratio.
+* The result is sorted based on the `upvoteToPostRatio` and in descending 
order.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"groupBy\",
+  \"dataSource\": \"social_media\",
+  \"dimensions\": [\"username\"],
+  \"granularity\": \"all\",
+  \"aggregations\": [
+    { \"type\": \"doubleSum\", \"name\": \"upvoteSum\", \"fieldName\": 
\"upvotes\" },
+    { \"type\": \"count\", \"name\": \"postCount\", \"fieldName\": 
\"post_title\" }
+  ],
+  \"postAggregations\": [
+    {
+      \"type\": \"arithmetic\",
+      \"name\": \"upvoteToPostRatio\",
+      \"fn\": \"/\",
+      \"fields\": [
+        { \"type\": \"fieldAccess\", \"name\": \"upvoteSum\", \"fieldName\": 
\"upvoteSum\" },
+        { \"type\": \"fieldAccess\", \"name\": \"postCount\", \"fieldName\": 
\"postCount\" }
+      ]
+    }
+  ],
+  \"intervals\": [\"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"],
+  \"limitSpec\": {
+    \"type\": \"default\",
+    \"limit\": 1,
+    \"columns\": [
+      { \"dimension\": \"upvoteToPostRatio\", \"direction\": \"descending\" }
+    ]
+  }
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>
+Content-Type: application/json
+Content-Length: 817
+
+{
+  "queryType": "groupBy",
+  "dataSource": "social_media",
+  "dimensions": ["username"],
+  "granularity": "all",
+  "aggregations": [
+    { "type": "doubleSum", "name": "upvoteSum", "fieldName": "upvotes" },
+    { "type": "count", "name": "postCount", "fieldName": "post_title" }
+  ],
+  "postAggregations": [
+    {
+      "type": "arithmetic",
+      "name": "upvoteToPostRatio",
+      "fn": "/",
+      "fields": [
+        { "type": "fieldAccess", "name": "upvoteSum", "fieldName": "upvoteSum" 
},
+        { "type": "fieldAccess", "name": "postCount", "fieldName": "postCount" 
}
+      ]
+    }
+  ],
+  "intervals": ["2022-01-01T00:00:00.000/2024-01-01T00:00:00.000"],
+  "limitSpec": {
+    "type": "default",
+    "limit": 1,
+    "columns": [
+      { "dimension": "upvoteToPostRatio", "direction": "descending" }
+    ]
+  }
+}
+```
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sample response
+
+<details>
+  <summary>Click to show sample response</summary>
+  The following is a sample response of the first query, retrieving a ranked 
list of users and post views.
+
+  ```json
+[
+    {
+        "timestamp": "2023-07-03T18:49:54.848Z",
+        "result": [
+            {
+                "views": 11591218026,
+                "username": "gus"
+            },
+            {
+                "views": 11578638578,
+                "username": "miette"
+            },
+            {
+                "views": 11561618880,
+                "username": "leon"
+            },
+            {
+                "views": 11552609824,
+                "username": "mia"
+            },
+            {
+                "views": 11551537517,
+                "username": "milton"
+            }
+        ]
+    }
+]
+  ```
+
+
+  The following is a sample response of the second query, retrieving the user 
with the highest upvotes to posts ratio.
+
+  ```json
+[
+    {
+        "version": "v1",
+        "timestamp": "2022-01-01T00:00:00.000Z",
+        "event": {
+            "upvoteSum": 8.0419541E7,
+            "upvoteToPostRatio": 69.53014661762697,
+            "postCount": 1156614,
+            "username": "miette"
+        }
+    }
+]
+  ```
+</details>
+
+### Get segment information for query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/candidates/`

Review Comment:
   Why is it a POST and not a GET request?



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 
+
+Queries are composed of various JSON properties and Druid has different types 
of queries for different use cases. The possible types of queries are: 
`timeseries`, `topN`, `groupBy`, `timeBoundaries`, `segmentMetadata`, 
`datasourceMetadata`, `scan`, and `search`.
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully submitted query* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+The following example submits a JSON query of the `topN` type to retrieve a 
ranked list of users and their post views. 
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"topN\",
+  \"dataSource\": \"social_media\",
+  \"dimension\": \"username\",
+  \"threshold\": 5,
+  \"metric\": \"views\",
+  \"granularity\": \"all\",
+
+  \"aggregations\": [
+    {
+      \"type\": \"longSum\",
+      \"name\": \"views\",
+      \"fieldName\": \"views\"
+    }
+  ],
+  \"intervals\": [
+    \"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"
+  ]
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>

Review Comment:
   ```suggestion
   Host: http://ROUTER_IP:ROUTER_PORT
   ```



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 
+
+Queries are composed of various JSON properties and Druid has different types 
of queries for different use cases. The possible types of queries are: 
`timeseries`, `topN`, `groupBy`, `timeBoundaries`, `segmentMetadata`, 
`datasourceMetadata`, `scan`, and `search`.
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully submitted query* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+The following example submits a JSON query of the `topN` type to retrieve a 
ranked list of users and their post views. 
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"topN\",
+  \"dataSource\": \"social_media\",
+  \"dimension\": \"username\",
+  \"threshold\": 5,
+  \"metric\": \"views\",
+  \"granularity\": \"all\",
+
+  \"aggregations\": [
+    {
+      \"type\": \"longSum\",
+      \"name\": \"views\",
+      \"fieldName\": \"views\"
+    }
+  ],
+  \"intervals\": [
+    \"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"
+  ]
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>
+Content-Type: application/json
+Content-Length: 336
+
+{
+  "queryType": "topN",
+  "dataSource": "social_media",
+  "dimension": "username",
+  "threshold": 5,
+  "metric": "views",
+  "granularity": "all",
+
+  "aggregations": [
+    {
+      "type": "longSum",
+      "name": "views",
+      "fieldName": "views"
+    }
+  ],
+  "intervals": [
+    "2022-01-01T00:00:00.000/2024-01-01T00:00:00.000"
+  ]
+}
+```
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+The following example submits a JSON query of the `groupBy` type to retrieve 
the `username` with the highest upvotes to posts ratio from the `social_media` 
datasource.
+
+In this query:
+* The `upvoteSum` aggregation calculates the sum of the `upvotes` for each 
user.
+* The `postCount` aggregation calculates the sum of posts for each user.
+* The `upvoteToPostRatio` is a post-aggregation of the the `upvoteSum` and the 
`postCount`, divided to calculate the ratio.
+* The result is sorted based on the `upvoteToPostRatio` and in descending 
order.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \

Review Comment:
   ```suggestion
   curl "http://ROUTER_IP:ROUTER_PORT/druid/v2?pretty=null"; \
   ```



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 

Review Comment:
   We put the API description directly after the heading, then the URL - like 
this example:
   https://docs.imply.io/latest/pivot-alerts-api/



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 
+
+Queries are composed of various JSON properties and Druid has different types 
of queries for different use cases. The possible types of queries are: 
`timeseries`, `topN`, `groupBy`, `timeBoundaries`, `segmentMetadata`, 
`datasourceMetadata`, `scan`, and `search`.
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully submitted query* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+The following example submits a JSON query of the `topN` type to retrieve a 
ranked list of users and their post views. 
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"topN\",
+  \"dataSource\": \"social_media\",
+  \"dimension\": \"username\",
+  \"threshold\": 5,
+  \"metric\": \"views\",
+  \"granularity\": \"all\",
+
+  \"aggregations\": [
+    {
+      \"type\": \"longSum\",
+      \"name\": \"views\",
+      \"fieldName\": \"views\"
+    }
+  ],
+  \"intervals\": [
+    \"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"
+  ]
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>
+Content-Type: application/json
+Content-Length: 336
+
+{
+  "queryType": "topN",
+  "dataSource": "social_media",
+  "dimension": "username",
+  "threshold": 5,
+  "metric": "views",
+  "granularity": "all",
+
+  "aggregations": [
+    {
+      "type": "longSum",
+      "name": "views",
+      "fieldName": "views"
+    }
+  ],
+  "intervals": [
+    "2022-01-01T00:00:00.000/2024-01-01T00:00:00.000"
+  ]
+}
+```
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+The following example submits a JSON query of the `groupBy` type to retrieve 
the `username` with the highest upvotes to posts ratio from the `social_media` 
datasource.
+
+In this query:
+* The `upvoteSum` aggregation calculates the sum of the `upvotes` for each 
user.
+* The `postCount` aggregation calculates the sum of posts for each user.
+* The `upvoteToPostRatio` is a post-aggregation of the the `upvoteSum` and the 
`postCount`, divided to calculate the ratio.
+* The result is sorted based on the `upvoteToPostRatio` and in descending 
order.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"groupBy\",
+  \"dataSource\": \"social_media\",
+  \"dimensions\": [\"username\"],
+  \"granularity\": \"all\",
+  \"aggregations\": [
+    { \"type\": \"doubleSum\", \"name\": \"upvoteSum\", \"fieldName\": 
\"upvotes\" },
+    { \"type\": \"count\", \"name\": \"postCount\", \"fieldName\": 
\"post_title\" }
+  ],
+  \"postAggregations\": [
+    {
+      \"type\": \"arithmetic\",
+      \"name\": \"upvoteToPostRatio\",
+      \"fn\": \"/\",
+      \"fields\": [
+        { \"type\": \"fieldAccess\", \"name\": \"upvoteSum\", \"fieldName\": 
\"upvoteSum\" },
+        { \"type\": \"fieldAccess\", \"name\": \"postCount\", \"fieldName\": 
\"postCount\" }
+      ]
+    }
+  ],
+  \"intervals\": [\"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"],
+  \"limitSpec\": {
+    \"type\": \"default\",
+    \"limit\": 1,
+    \"columns\": [
+      { \"dimension\": \"upvoteToPostRatio\", \"direction\": \"descending\" }
+    ]
+  }
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>
+Content-Type: application/json
+Content-Length: 817
+
+{
+  "queryType": "groupBy",
+  "dataSource": "social_media",
+  "dimensions": ["username"],
+  "granularity": "all",
+  "aggregations": [
+    { "type": "doubleSum", "name": "upvoteSum", "fieldName": "upvotes" },
+    { "type": "count", "name": "postCount", "fieldName": "post_title" }
+  ],
+  "postAggregations": [
+    {
+      "type": "arithmetic",
+      "name": "upvoteToPostRatio",
+      "fn": "/",
+      "fields": [
+        { "type": "fieldAccess", "name": "upvoteSum", "fieldName": "upvoteSum" 
},
+        { "type": "fieldAccess", "name": "postCount", "fieldName": "postCount" 
}
+      ]
+    }
+  ],
+  "intervals": ["2022-01-01T00:00:00.000/2024-01-01T00:00:00.000"],
+  "limitSpec": {
+    "type": "default",
+    "limit": 1,
+    "columns": [
+      { "dimension": "upvoteToPostRatio", "direction": "descending" }
+    ]
+  }
+}
+```
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sample response
+
+<details>
+  <summary>Click to show sample response</summary>
+  The following is a sample response of the first query, retrieving a ranked 
list of users and post views.
+
+  ```json
+[
+    {
+        "timestamp": "2023-07-03T18:49:54.848Z",
+        "result": [
+            {
+                "views": 11591218026,
+                "username": "gus"
+            },
+            {
+                "views": 11578638578,
+                "username": "miette"
+            },
+            {
+                "views": 11561618880,
+                "username": "leon"
+            },
+            {
+                "views": 11552609824,
+                "username": "mia"
+            },
+            {
+                "views": 11551537517,
+                "username": "milton"
+            }
+        ]
+    }
+]
+  ```
+
+
+  The following is a sample response of the second query, retrieving the user 
with the highest upvotes to posts ratio.
+
+  ```json
+[
+    {
+        "version": "v1",
+        "timestamp": "2022-01-01T00:00:00.000Z",
+        "event": {
+            "upvoteSum": 8.0419541E7,
+            "upvoteToPostRatio": 69.53014661762697,
+            "postCount": 1156614,
+            "username": "miette"
+        }
+    }
+]
+  ```
+</details>
+
+### Get segment information for query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/candidates/`
+
+Retrieves an array that contains objects with segment information, including 
the server locations associated with the provided query. 
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully retrieved segment information* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2/candidates" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"topN\",
+  \"dataSource\": \"social_media\",
+  \"dimension\": \"username\",
+  \"threshold\": 5,
+  \"metric\": \"views\",
+  \"granularity\": \"all\",
+
+  \"aggregations\": [
+    {
+      \"type\": \"longSum\",
+      \"name\": \"views\",
+      \"fieldName\": \"views\"
+    }
+  ],
+  \"intervals\": [
+    \"2020-01-01T00:00:00.000/2024-01-01T00:00:00.000\"
+  ]
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2/candidates HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>

Review Comment:
   ```suggestion
   Host: http://ROUTER_IP:ROUTER_PORT
   ```



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 
+
+Queries are composed of various JSON properties and Druid has different types 
of queries for different use cases. The possible types of queries are: 
`timeseries`, `topN`, `groupBy`, `timeBoundaries`, `segmentMetadata`, 
`datasourceMetadata`, `scan`, and `search`.
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully submitted query* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+The following example submits a JSON query of the `topN` type to retrieve a 
ranked list of users and their post views. 
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \

Review Comment:
   Where is the POST part of the curl request? Shouldn't it be
   `curl -X POST`



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 
+
+Queries are composed of various JSON properties and Druid has different types 
of queries for different use cases. The possible types of queries are: 
`timeseries`, `topN`, `groupBy`, `timeBoundaries`, `segmentMetadata`, 
`datasourceMetadata`, `scan`, and `search`.
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully submitted query* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+The following example submits a JSON query of the `topN` type to retrieve a 
ranked list of users and their post views. 
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"topN\",
+  \"dataSource\": \"social_media\",
+  \"dimension\": \"username\",
+  \"threshold\": 5,
+  \"metric\": \"views\",
+  \"granularity\": \"all\",
+
+  \"aggregations\": [
+    {
+      \"type\": \"longSum\",
+      \"name\": \"views\",
+      \"fieldName\": \"views\"
+    }
+  ],
+  \"intervals\": [
+    \"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"
+  ]
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>
+Content-Type: application/json
+Content-Length: 336
+
+{
+  "queryType": "topN",
+  "dataSource": "social_media",
+  "dimension": "username",
+  "threshold": 5,
+  "metric": "views",
+  "granularity": "all",
+
+  "aggregations": [
+    {
+      "type": "longSum",
+      "name": "views",
+      "fieldName": "views"
+    }
+  ],
+  "intervals": [
+    "2022-01-01T00:00:00.000/2024-01-01T00:00:00.000"
+  ]
+}
+```
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+The following example submits a JSON query of the `groupBy` type to retrieve 
the `username` with the highest upvotes to posts ratio from the `social_media` 
datasource.
+
+In this query:
+* The `upvoteSum` aggregation calculates the sum of the `upvotes` for each 
user.
+* The `postCount` aggregation calculates the sum of posts for each user.
+* The `upvoteToPostRatio` is a post-aggregation of the the `upvoteSum` and the 
`postCount`, divided to calculate the ratio.
+* The result is sorted based on the `upvoteToPostRatio` and in descending 
order.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"groupBy\",
+  \"dataSource\": \"social_media\",
+  \"dimensions\": [\"username\"],
+  \"granularity\": \"all\",
+  \"aggregations\": [
+    { \"type\": \"doubleSum\", \"name\": \"upvoteSum\", \"fieldName\": 
\"upvotes\" },
+    { \"type\": \"count\", \"name\": \"postCount\", \"fieldName\": 
\"post_title\" }
+  ],
+  \"postAggregations\": [
+    {
+      \"type\": \"arithmetic\",
+      \"name\": \"upvoteToPostRatio\",
+      \"fn\": \"/\",
+      \"fields\": [
+        { \"type\": \"fieldAccess\", \"name\": \"upvoteSum\", \"fieldName\": 
\"upvoteSum\" },
+        { \"type\": \"fieldAccess\", \"name\": \"postCount\", \"fieldName\": 
\"postCount\" }
+      ]
+    }
+  ],
+  \"intervals\": [\"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"],
+  \"limitSpec\": {
+    \"type\": \"default\",
+    \"limit\": 1,
+    \"columns\": [
+      { \"dimension\": \"upvoteToPostRatio\", \"direction\": \"descending\" }
+    ]
+  }
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>
+Content-Type: application/json
+Content-Length: 817
+
+{
+  "queryType": "groupBy",
+  "dataSource": "social_media",
+  "dimensions": ["username"],
+  "granularity": "all",
+  "aggregations": [
+    { "type": "doubleSum", "name": "upvoteSum", "fieldName": "upvotes" },
+    { "type": "count", "name": "postCount", "fieldName": "post_title" }
+  ],
+  "postAggregations": [
+    {
+      "type": "arithmetic",
+      "name": "upvoteToPostRatio",
+      "fn": "/",
+      "fields": [
+        { "type": "fieldAccess", "name": "upvoteSum", "fieldName": "upvoteSum" 
},
+        { "type": "fieldAccess", "name": "postCount", "fieldName": "postCount" 
}
+      ]
+    }
+  ],
+  "intervals": ["2022-01-01T00:00:00.000/2024-01-01T00:00:00.000"],
+  "limitSpec": {
+    "type": "default",
+    "limit": 1,
+    "columns": [
+      { "dimension": "upvoteToPostRatio", "direction": "descending" }
+    ]
+  }
+}
+```
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sample response
+
+<details>
+  <summary>Click to show sample response</summary>
+  The following is a sample response of the first query, retrieving a ranked 
list of users and post views.
+
+  ```json
+[
+    {
+        "timestamp": "2023-07-03T18:49:54.848Z",
+        "result": [
+            {
+                "views": 11591218026,
+                "username": "gus"
+            },
+            {
+                "views": 11578638578,
+                "username": "miette"
+            },
+            {
+                "views": 11561618880,
+                "username": "leon"
+            },
+            {
+                "views": 11552609824,
+                "username": "mia"
+            },
+            {
+                "views": 11551537517,
+                "username": "milton"
+            }
+        ]
+    }
+]
+  ```
+
+
+  The following is a sample response of the second query, retrieving the user 
with the highest upvotes to posts ratio.
+
+  ```json
+[
+    {
+        "version": "v1",
+        "timestamp": "2022-01-01T00:00:00.000Z",
+        "event": {
+            "upvoteSum": 8.0419541E7,
+            "upvoteToPostRatio": 69.53014661762697,
+            "postCount": 1156614,
+            "username": "miette"
+        }
+    }
+]
+  ```
+</details>
+
+### Get segment information for query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/candidates/`
+
+Retrieves an array that contains objects with segment information, including 
the server locations associated with the provided query. 
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully retrieved segment information* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2/candidates" \

Review Comment:
   Where is the POST part of the curl request? Shouldn't it be
   `curl -X POST`



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 
+
+Queries are composed of various JSON properties and Druid has different types 
of queries for different use cases. The possible types of queries are: 
`timeseries`, `topN`, `groupBy`, `timeBoundaries`, `segmentMetadata`, 
`datasourceMetadata`, `scan`, and `search`.
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses

Review Comment:
   I would list the sample request first, then the responses.



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.

Review Comment:
   ```suggestion
   In this document, `http://SERVICE_IP:SERVICE_PORT` is a placeholder for the 
server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://ROUTER_IP:ROUTER_PORT` with 
`http://localhost:8888`.
   ```



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 
+
+Queries are composed of various JSON properties and Druid has different types 
of queries for different use cases. The possible types of queries are: 
`timeseries`, `topN`, `groupBy`, `timeBoundaries`, `segmentMetadata`, 
`datasourceMetadata`, `scan`, and `search`.
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully submitted query* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+The following example submits a JSON query of the `topN` type to retrieve a 
ranked list of users and their post views. 

Review Comment:
   In the data object, do you have to include all of these properties or are 
just some of them compulsory? Are the properties the same for all query types?
   In the Pivot API guide I used wording like... "At a minimum, you must 
provide `x`, `y`, and `z` in the body of the request."
   https://docs.imply.io/latest/pivot-alerts-api/#sample-request-3



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 
+
+Queries are composed of various JSON properties and Druid has different types 
of queries for different use cases. The possible types of queries are: 
`timeseries`, `topN`, `groupBy`, `timeBoundaries`, `segmentMetadata`, 
`datasourceMetadata`, `scan`, and `search`.
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully submitted query* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+The following example submits a JSON query of the `topN` type to retrieve a 
ranked list of users and their post views. 
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"topN\",
+  \"dataSource\": \"social_media\",
+  \"dimension\": \"username\",
+  \"threshold\": 5,
+  \"metric\": \"views\",
+  \"granularity\": \"all\",
+
+  \"aggregations\": [
+    {
+      \"type\": \"longSum\",
+      \"name\": \"views\",
+      \"fieldName\": \"views\"
+    }
+  ],
+  \"intervals\": [
+    \"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"
+  ]
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>
+Content-Type: application/json
+Content-Length: 336
+
+{
+  "queryType": "topN",
+  "dataSource": "social_media",
+  "dimension": "username",
+  "threshold": 5,
+  "metric": "views",
+  "granularity": "all",
+
+  "aggregations": [
+    {
+      "type": "longSum",
+      "name": "views",
+      "fieldName": "views"
+    }
+  ],
+  "intervals": [
+    "2022-01-01T00:00:00.000/2024-01-01T00:00:00.000"
+  ]
+}
+```
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+The following example submits a JSON query of the `groupBy` type to retrieve 
the `username` with the highest upvotes to posts ratio from the `social_media` 
datasource.
+
+In this query:
+* The `upvoteSum` aggregation calculates the sum of the `upvotes` for each 
user.
+* The `postCount` aggregation calculates the sum of posts for each user.
+* The `upvoteToPostRatio` is a post-aggregation of the the `upvoteSum` and the 
`postCount`, divided to calculate the ratio.
+* The result is sorted based on the `upvoteToPostRatio` and in descending 
order.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"groupBy\",
+  \"dataSource\": \"social_media\",
+  \"dimensions\": [\"username\"],
+  \"granularity\": \"all\",
+  \"aggregations\": [
+    { \"type\": \"doubleSum\", \"name\": \"upvoteSum\", \"fieldName\": 
\"upvotes\" },
+    { \"type\": \"count\", \"name\": \"postCount\", \"fieldName\": 
\"post_title\" }
+  ],
+  \"postAggregations\": [
+    {
+      \"type\": \"arithmetic\",
+      \"name\": \"upvoteToPostRatio\",
+      \"fn\": \"/\",
+      \"fields\": [
+        { \"type\": \"fieldAccess\", \"name\": \"upvoteSum\", \"fieldName\": 
\"upvoteSum\" },
+        { \"type\": \"fieldAccess\", \"name\": \"postCount\", \"fieldName\": 
\"postCount\" }
+      ]
+    }
+  ],
+  \"intervals\": [\"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"],
+  \"limitSpec\": {
+    \"type\": \"default\",
+    \"limit\": 1,
+    \"columns\": [
+      { \"dimension\": \"upvoteToPostRatio\", \"direction\": \"descending\" }
+    ]
+  }
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>
+Content-Type: application/json
+Content-Length: 817
+
+{
+  "queryType": "groupBy",
+  "dataSource": "social_media",
+  "dimensions": ["username"],
+  "granularity": "all",
+  "aggregations": [
+    { "type": "doubleSum", "name": "upvoteSum", "fieldName": "upvotes" },
+    { "type": "count", "name": "postCount", "fieldName": "post_title" }
+  ],
+  "postAggregations": [
+    {
+      "type": "arithmetic",
+      "name": "upvoteToPostRatio",
+      "fn": "/",
+      "fields": [
+        { "type": "fieldAccess", "name": "upvoteSum", "fieldName": "upvoteSum" 
},
+        { "type": "fieldAccess", "name": "postCount", "fieldName": "postCount" 
}
+      ]
+    }
+  ],
+  "intervals": ["2022-01-01T00:00:00.000/2024-01-01T00:00:00.000"],
+  "limitSpec": {
+    "type": "default",
+    "limit": 1,
+    "columns": [
+      { "dimension": "upvoteToPostRatio", "direction": "descending" }
+    ]
+  }
+}
+```
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sample response
+
+<details>
+  <summary>Click to show sample response</summary>
+  The following is a sample response of the first query, retrieving a ranked 
list of users and post views.

Review Comment:
   I would group the responses together with the requests.
   Example first request followed by its response, example second request 
followed by its response.



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 
+
+Queries are composed of various JSON properties and Druid has different types 
of queries for different use cases. The possible types of queries are: 
`timeseries`, `topN`, `groupBy`, `timeBoundaries`, `segmentMetadata`, 
`datasourceMetadata`, `scan`, and `search`.
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully submitted query* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+The following example submits a JSON query of the `topN` type to retrieve a 
ranked list of users and their post views. 
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"topN\",
+  \"dataSource\": \"social_media\",
+  \"dimension\": \"username\",
+  \"threshold\": 5,
+  \"metric\": \"views\",
+  \"granularity\": \"all\",
+
+  \"aggregations\": [
+    {
+      \"type\": \"longSum\",
+      \"name\": \"views\",
+      \"fieldName\": \"views\"
+    }
+  ],
+  \"intervals\": [
+    \"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"
+  ]
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>
+Content-Type: application/json
+Content-Length: 336
+
+{
+  "queryType": "topN",
+  "dataSource": "social_media",
+  "dimension": "username",
+  "threshold": 5,
+  "metric": "views",
+  "granularity": "all",
+
+  "aggregations": [
+    {
+      "type": "longSum",
+      "name": "views",
+      "fieldName": "views"
+    }
+  ],
+  "intervals": [
+    "2022-01-01T00:00:00.000/2024-01-01T00:00:00.000"
+  ]
+}
+```
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+The following example submits a JSON query of the `groupBy` type to retrieve 
the `username` with the highest upvotes to posts ratio from the `social_media` 
datasource.
+
+In this query:
+* The `upvoteSum` aggregation calculates the sum of the `upvotes` for each 
user.
+* The `postCount` aggregation calculates the sum of posts for each user.
+* The `upvoteToPostRatio` is a post-aggregation of the the `upvoteSum` and the 
`postCount`, divided to calculate the ratio.
+* The result is sorted based on the `upvoteToPostRatio` and in descending 
order.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"groupBy\",
+  \"dataSource\": \"social_media\",
+  \"dimensions\": [\"username\"],
+  \"granularity\": \"all\",
+  \"aggregations\": [
+    { \"type\": \"doubleSum\", \"name\": \"upvoteSum\", \"fieldName\": 
\"upvotes\" },
+    { \"type\": \"count\", \"name\": \"postCount\", \"fieldName\": 
\"post_title\" }
+  ],
+  \"postAggregations\": [
+    {
+      \"type\": \"arithmetic\",
+      \"name\": \"upvoteToPostRatio\",
+      \"fn\": \"/\",
+      \"fields\": [
+        { \"type\": \"fieldAccess\", \"name\": \"upvoteSum\", \"fieldName\": 
\"upvoteSum\" },
+        { \"type\": \"fieldAccess\", \"name\": \"postCount\", \"fieldName\": 
\"postCount\" }
+      ]
+    }
+  ],
+  \"intervals\": [\"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"],
+  \"limitSpec\": {
+    \"type\": \"default\",
+    \"limit\": 1,
+    \"columns\": [
+      { \"dimension\": \"upvoteToPostRatio\", \"direction\": \"descending\" }
+    ]
+  }
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>

Review Comment:
   ```suggestion
   Host: http://ROUTER_IP:ROUTER_PORT
   ```



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 
+
+Queries are composed of various JSON properties and Druid has different types 
of queries for different use cases. The possible types of queries are: 
`timeseries`, `topN`, `groupBy`, `timeBoundaries`, `segmentMetadata`, 
`datasourceMetadata`, `scan`, and `search`.
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully submitted query* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+The following example submits a JSON query of the `topN` type to retrieve a 
ranked list of users and their post views. 
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"topN\",
+  \"dataSource\": \"social_media\",
+  \"dimension\": \"username\",
+  \"threshold\": 5,
+  \"metric\": \"views\",
+  \"granularity\": \"all\",
+
+  \"aggregations\": [
+    {
+      \"type\": \"longSum\",
+      \"name\": \"views\",
+      \"fieldName\": \"views\"
+    }
+  ],
+  \"intervals\": [
+    \"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"
+  ]
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>
+Content-Type: application/json
+Content-Length: 336
+
+{
+  "queryType": "topN",
+  "dataSource": "social_media",
+  "dimension": "username",
+  "threshold": 5,
+  "metric": "views",
+  "granularity": "all",
+
+  "aggregations": [
+    {
+      "type": "longSum",
+      "name": "views",
+      "fieldName": "views"
+    }
+  ],
+  "intervals": [
+    "2022-01-01T00:00:00.000/2024-01-01T00:00:00.000"
+  ]
+}
+```
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+The following example submits a JSON query of the `groupBy` type to retrieve 
the `username` with the highest upvotes to posts ratio from the `social_media` 
datasource.
+
+In this query:
+* The `upvoteSum` aggregation calculates the sum of the `upvotes` for each 
user.
+* The `postCount` aggregation calculates the sum of posts for each user.
+* The `upvoteToPostRatio` is a post-aggregation of the the `upvoteSum` and the 
`postCount`, divided to calculate the ratio.
+* The result is sorted based on the `upvoteToPostRatio` and in descending 
order.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"groupBy\",
+  \"dataSource\": \"social_media\",
+  \"dimensions\": [\"username\"],
+  \"granularity\": \"all\",
+  \"aggregations\": [
+    { \"type\": \"doubleSum\", \"name\": \"upvoteSum\", \"fieldName\": 
\"upvotes\" },
+    { \"type\": \"count\", \"name\": \"postCount\", \"fieldName\": 
\"post_title\" }
+  ],
+  \"postAggregations\": [
+    {
+      \"type\": \"arithmetic\",
+      \"name\": \"upvoteToPostRatio\",
+      \"fn\": \"/\",
+      \"fields\": [
+        { \"type\": \"fieldAccess\", \"name\": \"upvoteSum\", \"fieldName\": 
\"upvoteSum\" },
+        { \"type\": \"fieldAccess\", \"name\": \"postCount\", \"fieldName\": 
\"postCount\" }
+      ]
+    }
+  ],
+  \"intervals\": [\"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"],
+  \"limitSpec\": {
+    \"type\": \"default\",
+    \"limit\": 1,
+    \"columns\": [
+      { \"dimension\": \"upvoteToPostRatio\", \"direction\": \"descending\" }
+    ]
+  }
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>
+Content-Type: application/json
+Content-Length: 817
+
+{
+  "queryType": "groupBy",
+  "dataSource": "social_media",
+  "dimensions": ["username"],
+  "granularity": "all",
+  "aggregations": [
+    { "type": "doubleSum", "name": "upvoteSum", "fieldName": "upvotes" },
+    { "type": "count", "name": "postCount", "fieldName": "post_title" }
+  ],
+  "postAggregations": [
+    {
+      "type": "arithmetic",
+      "name": "upvoteToPostRatio",
+      "fn": "/",
+      "fields": [
+        { "type": "fieldAccess", "name": "upvoteSum", "fieldName": "upvoteSum" 
},
+        { "type": "fieldAccess", "name": "postCount", "fieldName": "postCount" 
}
+      ]
+    }
+  ],
+  "intervals": ["2022-01-01T00:00:00.000/2024-01-01T00:00:00.000"],
+  "limitSpec": {
+    "type": "default",
+    "limit": 1,
+    "columns": [
+      { "dimension": "upvoteToPostRatio", "direction": "descending" }
+    ]
+  }
+}
+```
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sample response
+
+<details>
+  <summary>Click to show sample response</summary>
+  The following is a sample response of the first query, retrieving a ranked 
list of users and post views.
+
+  ```json
+[
+    {
+        "timestamp": "2023-07-03T18:49:54.848Z",
+        "result": [
+            {
+                "views": 11591218026,
+                "username": "gus"
+            },
+            {
+                "views": 11578638578,
+                "username": "miette"
+            },
+            {
+                "views": 11561618880,
+                "username": "leon"
+            },
+            {
+                "views": 11552609824,
+                "username": "mia"
+            },
+            {
+                "views": 11551537517,
+                "username": "milton"
+            }
+        ]
+    }
+]
+  ```
+
+
+  The following is a sample response of the second query, retrieving the user 
with the highest upvotes to posts ratio.
+
+  ```json
+[
+    {
+        "version": "v1",
+        "timestamp": "2022-01-01T00:00:00.000Z",
+        "event": {
+            "upvoteSum": 8.0419541E7,
+            "upvoteToPostRatio": 69.53014661762697,
+            "postCount": 1156614,
+            "username": "miette"
+        }
+    }
+]
+  ```
+</details>
+
+### Get segment information for query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/candidates/`
+
+Retrieves an array that contains objects with segment information, including 
the server locations associated with the provided query. 
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully retrieved segment information* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2/candidates" \

Review Comment:
   ```suggestion
   curl "http://ROUTER_IP:ROUTER_PORT/druid/v2/candidates"; \
   ```



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 
+
+Queries are composed of various JSON properties and Druid has different types 
of queries for different use cases. The possible types of queries are: 
`timeseries`, `topN`, `groupBy`, `timeBoundaries`, `segmentMetadata`, 
`datasourceMetadata`, `scan`, and `search`.
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully submitted query* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+The following example submits a JSON query of the `topN` type to retrieve a 
ranked list of users and their post views. 
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \

Review Comment:
   ```suggestion
   curl "http://ROUTER_IP:ROUTER_PORT/druid/v2?pretty=null"; \
   ```



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.
+
 ## Queries
 
-`POST /druid/v2/`
+### Submit a query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/`
+
+Submits a JSON-based native query. 
+
+Queries are composed of various JSON properties and Druid has different types 
of queries for different use cases. The possible types of queries are: 
`timeseries`, `topN`, `groupBy`, `timeBoundaries`, `segmentMetadata`, 
`datasourceMetadata`, `scan`, and `search`.
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.
+
+#### Responses
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--200 SUCCESS-->
+<br/>
+*Successfully submitted query* 
+<!--400 BAD REQUEST-->
+<br/>
+*Error thrown due to bad query. Returns a JSON object detailing the error with 
the following format:*
+
+```json
+{
+    "error": "A well-defined error code.",
+    "errorMessage": "A message with additional details about the error.",
+    "errorClass": "Class of exception that caused this error.",
+    "host": "The host on which the error occurred."
+}
+```
+For more information on possible error messages, see [query execution 
failures](../querying/querying.md#query-execution-failures).
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+---
+
+#### Sample request
+
+The following example submits a JSON query of the `topN` type to retrieve a 
ranked list of users and their post views. 
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"topN\",
+  \"dataSource\": \"social_media\",
+  \"dimension\": \"username\",
+  \"threshold\": 5,
+  \"metric\": \"views\",
+  \"granularity\": \"all\",
+
+  \"aggregations\": [
+    {
+      \"type\": \"longSum\",
+      \"name\": \"views\",
+      \"fieldName\": \"views\"
+    }
+  ],
+  \"intervals\": [
+    \"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"
+  ]
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>
+Content-Type: application/json
+Content-Length: 336
+
+{
+  "queryType": "topN",
+  "dataSource": "social_media",
+  "dimension": "username",
+  "threshold": 5,
+  "metric": "views",
+  "granularity": "all",
+
+  "aggregations": [
+    {
+      "type": "longSum",
+      "name": "views",
+      "fieldName": "views"
+    }
+  ],
+  "intervals": [
+    "2022-01-01T00:00:00.000/2024-01-01T00:00:00.000"
+  ]
+}
+```
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+The following example submits a JSON query of the `groupBy` type to retrieve 
the `username` with the highest upvotes to posts ratio from the `social_media` 
datasource.
+
+In this query:
+* The `upvoteSum` aggregation calculates the sum of the `upvotes` for each 
user.
+* The `postCount` aggregation calculates the sum of posts for each user.
+* The `upvoteToPostRatio` is a post-aggregation of the the `upvoteSum` and the 
`postCount`, divided to calculate the ratio.
+* The result is sorted based on the `upvoteToPostRatio` and in descending 
order.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--cURL-->
+```shell
+curl "http://<ROUTER_IP>:<ROUTER_PORT>/druid/v2?pretty=null" \
+--header "Content-Type: application/json" \
+--data "{
+  \"queryType\": \"groupBy\",
+  \"dataSource\": \"social_media\",
+  \"dimensions\": [\"username\"],
+  \"granularity\": \"all\",
+  \"aggregations\": [
+    { \"type\": \"doubleSum\", \"name\": \"upvoteSum\", \"fieldName\": 
\"upvotes\" },
+    { \"type\": \"count\", \"name\": \"postCount\", \"fieldName\": 
\"post_title\" }
+  ],
+  \"postAggregations\": [
+    {
+      \"type\": \"arithmetic\",
+      \"name\": \"upvoteToPostRatio\",
+      \"fn\": \"/\",
+      \"fields\": [
+        { \"type\": \"fieldAccess\", \"name\": \"upvoteSum\", \"fieldName\": 
\"upvoteSum\" },
+        { \"type\": \"fieldAccess\", \"name\": \"postCount\", \"fieldName\": 
\"postCount\" }
+      ]
+    }
+  ],
+  \"intervals\": [\"2022-01-01T00:00:00.000/2024-01-01T00:00:00.000\"],
+  \"limitSpec\": {
+    \"type\": \"default\",
+    \"limit\": 1,
+    \"columns\": [
+      { \"dimension\": \"upvoteToPostRatio\", \"direction\": \"descending\" }
+    ]
+  }
+}"
+```
+<!--HTTP-->
+```HTTP
+POST /druid/v2?pretty=null HTTP/1.1
+Host: http://<ROUTER_IP>:<ROUTER_PORT>
+Content-Type: application/json
+Content-Length: 817
+
+{
+  "queryType": "groupBy",
+  "dataSource": "social_media",
+  "dimensions": ["username"],
+  "granularity": "all",
+  "aggregations": [
+    { "type": "doubleSum", "name": "upvoteSum", "fieldName": "upvotes" },
+    { "type": "count", "name": "postCount", "fieldName": "post_title" }
+  ],
+  "postAggregations": [
+    {
+      "type": "arithmetic",
+      "name": "upvoteToPostRatio",
+      "fn": "/",
+      "fields": [
+        { "type": "fieldAccess", "name": "upvoteSum", "fieldName": "upvoteSum" 
},
+        { "type": "fieldAccess", "name": "postCount", "fieldName": "postCount" 
}
+      ]
+    }
+  ],
+  "intervals": ["2022-01-01T00:00:00.000/2024-01-01T00:00:00.000"],
+  "limitSpec": {
+    "type": "default",
+    "limit": 1,
+    "columns": [
+      { "dimension": "upvoteToPostRatio", "direction": "descending" }
+    ]
+  }
+}
+```
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sample response
+
+<details>
+  <summary>Click to show sample response</summary>
+  The following is a sample response of the first query, retrieving a ranked 
list of users and post views.
+
+  ```json
+[
+    {
+        "timestamp": "2023-07-03T18:49:54.848Z",
+        "result": [
+            {
+                "views": 11591218026,
+                "username": "gus"
+            },
+            {
+                "views": 11578638578,
+                "username": "miette"
+            },
+            {
+                "views": 11561618880,
+                "username": "leon"
+            },
+            {
+                "views": 11552609824,
+                "username": "mia"
+            },
+            {
+                "views": 11551537517,
+                "username": "milton"
+            }
+        ]
+    }
+]
+  ```
+
+
+  The following is a sample response of the second query, retrieving the user 
with the highest upvotes to posts ratio.
+
+  ```json
+[
+    {
+        "version": "v1",
+        "timestamp": "2022-01-01T00:00:00.000Z",
+        "event": {
+            "upvoteSum": 8.0419541E7,
+            "upvoteToPostRatio": 69.53014661762697,
+            "postCount": 1156614,
+            "username": "miette"
+        }
+    }
+]
+  ```
+</details>
+
+### Get segment information for query
+
+#### URL
+<code class="postAPI">POST</code> `/druid/v2/candidates/`
+
+Retrieves an array that contains objects with segment information, including 
the server locations associated with the provided query. 
+
+#### Query parameters
+* `pretty` (optional)
+  * The response is returned in a pretty-printed format using indentation and 
line breaks.

Review Comment:
   ```suggestion
     * Druid returns the response in a pretty-printed format using indentation 
and line breaks.
   ```



##########
docs/api-reference/json-querying-api.md:
##########
@@ -25,12 +25,853 @@ sidebar_label: JSON querying
 
 This document describes the API endpoints to submit JSON-based [native 
queries](../querying/querying.md) to Apache Druid.
 
+In this document, `http://<SERVICE_IP>:<SERVICE_PORT>` is a placeholder for 
the server address of deployment and the service port. For example, on the 
quickstart configuration, replace `http://<ROUTER_IP>:<ROUTER_PORT>` with 
`http://localhost:8888`.

Review Comment:
   The angled brackets can cause confusion so it's best to avoid them.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to