226 lines
5.1 KiB
Markdown
226 lines
5.1 KiB
Markdown
## Rows
|
|
|
|
### 1. List Rows of a Table
|
|
|
|
To list all (or some of) rows we simply call `/tables/<table-name>/rows/` endpoint with `GET` method.
|
|
|
|
```bash
|
|
curl 'localhost:8000/api/tables/Album/rows/'
|
|
```
|
|
|
|
Response
|
|
|
|
```json
|
|
{
|
|
"data": [
|
|
{
|
|
"AlbumId": 1,
|
|
"Title": "For Those About To Rock We Salute You",
|
|
"ArtistId": 1
|
|
},
|
|
{ "AlbumId": 2, "Title": "Balls to the Wall", "ArtistId": 2 }
|
|
// ...
|
|
],
|
|
"total": 347,
|
|
"next": "/tables/Album?page=2",
|
|
"previous": null
|
|
}
|
|
```
|
|
|
|
#### Query Params
|
|
|
|
- `_page` e.g. `?_page=2`, to get the second page of results.
|
|
- `_limit` e.g. `?_limit=20`, to get 20 results per page.
|
|
- `_search` e.g. `?_search=rock`, to search across all fields.
|
|
- `_ordering` e.g. `?_ordering=-Title`, to order rows by title descending, or without `-` to sort ascending, e.g. `?_ordering=Title`
|
|
- `_schema` e.g. `?_schema=Title,ArtistId`, to get only the Title and ArtistId columns.
|
|
- `_extend` e.g. `?_extend=ArtistId`, to get the Artist object related to the Album.
|
|
- `_filters` e.g. `?_filters=ArtistId:[1,2,3],Title:Rock`, to get only the rows where the ArtistId can be 1,2 or 3 and the Title is Rock.
|
|
NOTE: If you want to use comparison operators in the filter, you can use these operators after the field: `__eq, __neq, __lt, __gt, __lte, __gte, __null, __notnull` . For example, you can use `/invoices/rows?_filters=InvoiceId__neq:1,Total__gte:5,BillingPostalCode__notnull`
|
|
|
|
Example with query params
|
|
|
|
```bash
|
|
curl 'localhost:8000/api/tables/Album/rows?_page=1&_limit=20&_search=rock&_ordering=-Title&_schema=Title,ArtistId&_extend=ArtistId&_filters=ArtistId:90'
|
|
```
|
|
|
|
Response
|
|
|
|
```json
|
|
{
|
|
"data": [
|
|
{
|
|
"Title": "Rock In Rio [CD2]",
|
|
"ArtistId": 90,
|
|
"ArtistId_data": { "ArtistId": 90, "Name": "Iron Maiden" }
|
|
},
|
|
{
|
|
"Title": "Rock In Rio [CD1]",
|
|
"ArtistId": 90,
|
|
"ArtistId_data": { "ArtistId": 90, "Name": "Iron Maiden" }
|
|
}
|
|
],
|
|
"total": 2,
|
|
"next": null,
|
|
"previous": null
|
|
}
|
|
```
|
|
|
|
### 2. Insert a New Row
|
|
|
|
To insert a new row to a `table` call `/tables/<table-name>/rows/` endpoint with `POST` method.
|
|
|
|
```bash
|
|
curl --request POST \
|
|
--url http://localhost:8000/api/tables/Employee/rows \
|
|
--header 'Content-Type: application/json' \
|
|
--data '{
|
|
"fields": {
|
|
"FirstName": "Damien",
|
|
"LastName": "Rice"
|
|
}
|
|
}'
|
|
```
|
|
|
|
Response
|
|
|
|
```json
|
|
{
|
|
"message": "Row inserted",
|
|
"data": {
|
|
"changes": 1,
|
|
"lastInsertRowid": 9
|
|
}
|
|
}
|
|
```
|
|
|
|
#### Body Params
|
|
|
|
- `fields` e.g.
|
|
|
|
```json
|
|
"fields": {
|
|
// fields values for the new row
|
|
}
|
|
```
|
|
|
|
### 3. Get Row(s) by ID
|
|
|
|
To get a row call `/tables/<table-name>/rows/<lookup-values>/` endpoint with `GET` method.
|
|
|
|
```bash
|
|
curl http://localhost:8000/api/tables/Album/rows/1/
|
|
```
|
|
|
|
Response
|
|
|
|
```json
|
|
{
|
|
"data": {
|
|
"AlbumId": 1,
|
|
"Title": "For Those About To Rock We Salute You",
|
|
"ArtistId": 1
|
|
}
|
|
}
|
|
```
|
|
|
|
#### Path Params
|
|
|
|
- `lookup-values` e.g. `1`, to get the row with the AlbumId 1. or comma-separated values e.g. `1,2`, to get the rows with the AlbumId 1 and 2. (Bulk Retrieve)
|
|
|
|
#### Query Params
|
|
|
|
- `_lookup_field` e.g. `?_lookup_field=ArtistId`, to get the row by the ArtistId field. If not provided, the default lookup field is the primary key of the table.
|
|
- `_schema` e.g. `?_schema=Title,ArtistId`, to get only the Title and ArtistId columns.
|
|
- `_extend` e.g. `?_extend=ArtistId`, to get the Artist object related to the Album.
|
|
|
|
Example with query params
|
|
|
|
```bash
|
|
curl 'http://localhost:8000/api/tables/Album/rows/Facelift?_lookup_field=Title&_extend=ArtistId&_schema=Title'
|
|
```
|
|
|
|
Response
|
|
|
|
```json
|
|
{
|
|
"data": {
|
|
"Title": "Facelift",
|
|
"ArtistId_data": {
|
|
"ArtistId": 5,
|
|
"Name": "Alice In Chains"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### 4. Update Row(s) by ID
|
|
|
|
To update a row call `/tables/<table-name>/rows/<lookup-values>/` endpoint with `PUT` method.
|
|
|
|
```bash
|
|
curl --request PUT \
|
|
--url http://localhost:8000/api/tables/Album/rows/7 \
|
|
--header 'Content-Type: application/json' \
|
|
--data '{
|
|
"fields": {
|
|
"Title": "FaceElevate"
|
|
}
|
|
}'
|
|
```
|
|
|
|
Response
|
|
|
|
```json
|
|
{
|
|
"message": "Row updated"
|
|
}
|
|
```
|
|
|
|
#### Path Params
|
|
|
|
- `lookup-values` e.g. `1`, to update the row with the AlbumId 1. or comma-separated values e.g. `1,2`, to update the rows with the AlbumId 1 and 2. (Bulk Update)
|
|
|
|
#### Query Params
|
|
|
|
- `_lookup_field` e.g. `?_lookup_field=ArtistId`, to update the row by the ArtistId field. If not provided, the default lookup field is the primary key of the table.
|
|
|
|
#### Body Params
|
|
|
|
- `fields` e.g.
|
|
|
|
```json
|
|
"fields": {
|
|
// fields values to update
|
|
}
|
|
```
|
|
|
|
### 5. Delete Row(s) by ID
|
|
|
|
To delete a row call `/tables/<table-name>/rows/<lookup-values>/` endpoint with `DELETE` method.
|
|
|
|
```bash
|
|
curl --request DELETE \
|
|
--url http://localhost:8000/api/tables/PlaylistTrack/rows/1
|
|
```
|
|
|
|
Response
|
|
|
|
```json
|
|
{
|
|
"message": "Row deleted",
|
|
"data": {
|
|
"changes": 3290,
|
|
"lastInsertRowid": 0
|
|
}
|
|
}
|
|
```
|
|
|
|
#### Path Params
|
|
|
|
- `lookup-values` e.g. `1`, to delete the row with the AlbumId 1. or comma-separated values e.g. `1,2`, to delete the rows with the AlbumId 1 and 2. (Bulk Delete)
|
|
|
|
#### Query Params
|
|
|
|
- `_lookup_field` e.g. `?_lookup_field=ArtistId`, to delete the row by the ArtistId field. If not provided, the default lookup field is the primary key of the table.
|