Nem o GET nem o POST são seguros via HTTP, se a segurança é importante, provavelmente você deveria procurar por um certificado SSL, até mesmo um auto-assinado faria - se você dissesse ao seu 'cliente' (eu acho que é algum tipo de telefone / tablet?) para confiar no certificado.
REST é provavelmente uma boa maneira de fazer isso, pois oferece um padrão simples e agradável. Você pode ter apenas um ponto final no momento, mas se você construir no REST, poderá adicionar mais facilmente à medida que seu aplicativo crescer. REST é um padrão, em vez de um protocolo. Isso significa que as APIs REST devem estar em conformidade com esses padrões;
- Obter dados do servidor deve ser feito usando GET. GET nunca deve alterar um recurso.
- Os recursos de alterações (Criação, atualização) no servidor devem ser feitos usando o POST.
- Todos os endpoints / method devem ter seu próprio URL (I.E. api.example.com/get_something em vez de api.example.com/api?method=get_something)
- As respostas devem ser retornadas com base no tipo de arquivo (Assim, get_something.xml deve retornar xml, get_something.json deve retornar JSON etc., não é necessário suportar todos os formatos, mas os que você faz devem ser solicitados por arquivo tipo).
Observe que tanto o GET quanto o POST podem fornecer parâmetros adicionais para o aplicativo no servidor, mas no caso do GET isso normalmente é usado apenas para filtrar a consulta, enquanto que no POST ele pode fornecer detalhes sobre a alteração a ser registrada.
Com relação ao problema JSON, geralmente o JSON usará mais largura de banda (apenas um pouquinho), mas é muito mais fácil trabalhar com ele.
Exemplo, aqui está uma versão em texto simples de uma possível resposta da API;
-25.90962,161.08639
-4.11525,-91.31969
-13.76025,147.22927
Mas aqui está uma resposta com o JSON
{
coordinates:[
{
lat: -25.90962,
long: 161.08639
}
{
lat: -4.11525,
long: -91.31.969
}
{
lat: -13.76025,
long: 147.22927
}
]
}
O JSON tem o exemplo de ser facilmente legível por máquina, enquanto o texto simples teria que ser analisado. E lembre-se que com tipos de arquivo como JSON, você pode usar a compactação GZIP para reduzir drasticamente os dados que precisam ser transferidos.
Nota: Quando você entra em detalhes, o POST deve criar apenas novos recursos, enquanto o PUT deve apenas alterar os recursos existentes.