Sobre petições REST
As estrutyuras abaixo são compatíveis com petições REST:
| URI | Recurso | {Subresource} | {Querystring} |
|---|---|---|---|
| http://{servername}:{port}/rest/ | {dataClass}/ | {attribute1, attribute2, ...}/ | |
| {dataClass}/ | {attribute1, attribute2, ...}/ | {method} | |
| $entityset/{entitySetID} | |||
| ?$filter | |||
| {attribute}/ | ?$compute | ||
| {dataClass}({key})/ | {attribute1, attribute2, ...}/ | ||
| {dataClass}:{attribute}(value) | |||
| $catalog | |||
| $directory | |||
| $info |
While all REST requests must contain the URI and Resource parameters, the Subresource (which filters the data returned) is optional.
Como com todas as URIs, o primeiro parâmetro é definido por um “?” e todos os parâmetros subsequentes por “&”. Por exemplo:
GET /rest/Person/?$filter="lastName!=Jones"&$method=entityset&$timeout=600
Pode colocar todos os valores entre aspas para evitar ambiguidades. Por exemplo, no exemplo anterior, poderíamos colocar o valor para o último nome em aspas simples: "lastName!='Jones'".
Os parâmetros permitem que manipule dados em dataclasses em seu projeto 4D. Além de recuperar dados usando métodos HTTPGET, também pode adicionar, atualizar e apagar entidades em uma dataclass usando os métodos HTTP POST.
Se quiser que os dados sejam retornados em um array ao invés de um JSON, use o parâmetro $asArray.
Estado e resposta REST
Com cada petição REST, o servidor retorna o estado e uma resposta (com ou sem um erro).
Estado da petição
Com cada petição REST, se obtém o estado junto com a resposta. Abaixo estão alguns estados que podem surgir:
| Estado | Descrição |
|---|---|
| 0 | Petição não processada (servidor pode não ter iniciado). |
| 200 OK | Petição processada sem erro. |
| 401 Unauthorized | Erro de autorização (verifique as permissões do usuário). |
| 402 No session | Número máximo de sessões foi alcançado. |
| 404 Not Found | A classe de dados não é acessível via REST ou o conjunto de entidades não existe. |
| 500 Internal Server Error | Erro processando a petição REST. |
Resposta
A resposta (em formato JSON) varia dependendo da petição.
Se um erro surgir, será enviado junto com a resposta do servidor ou será a resposta do servidor.