Como acesso os dados PUT da API REST PHP no lado do servidor?
- Pergunta -
stou apenas começando com a API REST e estou ficando bastante confus
Este é o aspecto do meu cliente PHP cRUL para um PUT.
case 'PUT':
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
break;
Agora, quando olho para o servidor, meu $ _SERVER ['REQUEST_METHOD'] mostra PUT, mas minha pergunta é como obtenho os $ dados enviados com CURLOPT_POSTFIELDS.
Tudo o que preciso fazer é colocar os dados $ enviados com uma solicitação PUT na próxima linha. Gosta
$value = $data['curl_data'];
Vi tanta confusão nesse tópico que está me dando dor de cabeça. Parece tão fácil no lado do cliente php, mas ninguém tem respostas que funcionem para o lado do servidor ph
Obrigado por qualquer ajuda
- Resposta (depois da ajuda e da lição de casa) -
Sou novo, então não posso responder minha própria pergunta até depois de 8 horas ... estranho:)
Ok, depois de trabalhar com as ótimas pessoas aqui, devo dizer que encontramos a resposta. Estou me chutando por ser tão fácil, ao mesmo tempo que era confuso.
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($data));
A primeira alteração (acima) tive que adicionar http_build_query () em torno de $ data. Isso levou meus dados de uma matriz para uma sequência amigável de UR
Próximo eu tinha que adicionar.
parse_str(file_get_contents('php://input'), $put);
gora, eu posso fazer coisas como $ put ['data'
A resposta que o PaulPRO deu acima funciona para obter os dados da mesma forma que file_get_contents () com menos linhas. Ficamos paralisados tentando descobrir como analisar os dados, onde minha falta de http_build_query () que eu havia visto em outro site entrou em ação.
ntão é assim que tudo funcion
s dados são colocados em um raio normahttp_build_query () converte-o em uma string agradável como GEfile_get_contents () o transporta do cliente para o servidoparse_str () então o transforma novamente em uma matriEstou vendo muitas mensagens sobre o uso de PUT para enviar arquivos. Eu posso ver como isso funcionaria, mas pelo que li em todo esse processo REST foi que PUT deve atualizar os dados, pois a postagem é para criar dados. Talvez eu esteja enganado. Estou esquecendo de algo