ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACAD
1
2
3
4
Methodphp function HttpClientphp function DbTableНаличие тестовКраткое описаниеобработчик запросаНаличие тестовособенностиresponseExceptions в обработчикеТребованияЗапросBody запроса
5
примерexampleFunction($row)exampleFunction($row)Есть тесты под методы Тестовое описаниеExampleHandlerЕсть тесты для обработчика запросовпередаем в запрос тестовые данные200Если передаешь с primary keyprimaryKey запрещенGET /none
6
HEADgetIdentifiergetIdentifierпокрыто тестамиполучение primary keyHeadHandlerтестов нет200, хедерыHEAD /any
7
GETread($id)read($id)покрыто тестамичтение записи по PRIReadHandlerReadHandlerTest200, body- primaryKeyValue isset
- RQL empty
GET /{$id}any
8
GETquery(Query $query)query(Query $query)покрыто тестамичтение записи по RQL фильтруQueryHandlerQueryHandlerTestможно withContentRange200, body- primaryKeyValue null
- RQL not empty
GET /?queryany
9
GETПолучение контента датастора в формате csv
Будет обновлятся заголовок для получение контента. Согласно стандартам это будет Accept: text/csv)
TODO: нужно завести отдельную процедуру в интерфейс, чтобы можно было реализовывать это на уровне датасторов
DownloadCsvHandlerDownloadCsvHandlerTest- HEADER = 'download'
- limit в rql перезаписывается
200GET /?rqlany
10
POSTcreate($itemData, $rewriteIfExist = false)create($itemData, $rewriteIfExist = false)покрыто тестамиСоздание записиCreateHandlerCreateHandlerTestможно overwriteMode - возможность перезаписи записи, если такой PRI уже существует201, Header Location, body idDataStoreException("Item with id '{$primaryKeyValue}' already exist") если без overwrite - request boсdy: array, все ключи строкового типа
- RQL empty
POST /{
"id":"value" (PRI),
notNull fields
}
11
POSTmultiCreate($records)multiCreate($records)покрыто тестамиСоздание нескольких записей одним запросомMultiCreateHandlerMultiCreateHandlerTestесли в дс не реализован метод, циклически create201, Header Location, body id's- request body: array of arrays
- RQL empty
POST /[
{create},
{create}
]
12
PUTupdate($itemData, $createIfAbsent = false)update($itemData, $createIfAbsent = false)покрыто тестамиЧастичное обновление записи.
Возможно будет введен deprecated и метод будет обновлен на PATCH (т.к. PUT не соответсвует стандартам для такого запроса)
UpdateHandlerUpdateHandlerTest- можно overwriteMode - разрешено ли создать запись, если по переданному PK её ещё нет
- если "id":"value" указан в теле запроса, то имеете приоритет над id из path param
200 либо 201 (если overwrite и не было записи)- либо primaryKeyValue isset, либо в строчке на обновление есть значение под primaryKeyValue
- request boсdy: array, все ключи строкового типа
- RQL empty
PUT /{$id} (либо в body id}{
"field":"value"
}
13
PATCHqueriedUpdate($record, Query $query)queriedUpdate($record, Query $query)покрыто тестамиЧастичное обновление записей, подходящих под условия RQL фильтраQueriedUpdateHandlerQueriedUpdateHandlerTestLimit required200DataStoreException('Data store object is not supporting queried update temporarily')- primaryKeyValue null
- RQL Limit required, no GroupBy, no Select, RQL not empty
- request body: array, ассоциативный массив
PATCH /?limit()&query{
"field":"value"
}
14
PATCHОбновление содержимого датастора (например, Cacheable)RefreshHandlerRefreshHandlerTest$this->dataStore instanceof RefreshableInterface200RestException("DataStore is not implement RefreshableInterface")- RQL emptyPATCH /any
15
DELETEdelete($id)delete($id)покрыто тестамиУдаление записи по PRIDeleteHandlerDeleteHandlerTest200 или 204 (нет содержимого)- primaryKeyValue isset
- RQL empty
DELETE /{$id}any
16
has($id) | DataStoreAbstracthas($id)покрыто тестамиПроверка, есть ли запись по такому PRI
17
multiUpdate($records) | DataStoreAbstractmultiUpdate($records)покрыто тестамиМножественное частичное обновление записей
18
deleteAll() | DataStoreAbstractdeleteAll()покрыто тестамиУдаление всех записей
19
rewrite($record) | DataStoreAbstractrewrite($record)покрыто тестамиПересоздание записи
20
multiRewrite($records) | DataStoreAbstractmultiRewrite($records)покрыто тестамиМножественное пересоздание записи
21
queriedDelete(Query $query) | DataStoreAbstractqueriedDelete(Query $query)покрыто тестамиУдаление записей, подходящих по RQL фильтру
22
count() | DataStoreAbstractcount()покрыто тестамиПолучение кол-ва строк в датасторе
23
getDbTable()нет тестовПолучение TableGateway
24
Ни один из обработчиков не обработал запрос к датасторуErrorHandlerErrorHandlerTestNo one datastore handler was executed500RestException("No one datastore handler was executed. " ...
25
26
27
28
29
30
- значит что для метода нет отдельной реализации, есть общий метод в классе-родителе
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100