Como regresso a data de um serviço Web

Uma maneira simples de obter seus pés molhados com serviços web é retornar uma data no formato JSON. Veja como você pode fazer isso:

  1. Abra o seu editor de texto ou IDE de programação e criar um novo arquivo vazio.

  2. Coloque o seguinte código no arquivo:

    lt; php $ header = "Content-Type: application / json"? -header ($ header) - $ date = Data ( "M d, Y") - json_encode print ($ data) ->
  3. Salve o arquivo como date.php na raiz do seu documento.

  4. Visualizar a página no seu navegador em http: //localhost/date.php.

    image0.jpg

O formato para este serviço web apenas retorna a data como uma cadeia entre aspas. É mais comum para retornar uma matriz de dados com cada elemento marcado. Os rótulos de torná-lo mais fácil de encontrar e usar elementos individuais. Por exemplo, considere o seguinte perfil:

lt; php $ header = "Content-Type: application / json"? -header ($ header) - $ date = Data ( "M d, Y") - $ returnData = array ( "friendlyDate" => $ date) - json_encode print ($ returnData) ->

Quando visto em um navegador, os dados codificados por JSON parecida com esta:

image1.jpg

Como você pode ver, há agora mais para os dados retornados. Isso significa que você pode retornar todos os tipos de dados com o mesmo serviço web e os consumidores do serviço web pode escolher quais peças que vai usar. Por exemplo, a próxima listagem mostra um serviço web data melhorada, que retorna a data amigável, o tempo de Unix, o mês, o dia da semana e do ano em vários formatos.

Este exemplo utiliza o PHP cabeçalho() função para enviar um Tipo de conteúdo cabeçalho para o browser. o Tipo de conteúdo header informa ao navegador que tipo de informação é de se esperar como saída. É importante para os navegadores, para que possam analisar as informações corretamente.

lt; php $ header = "Content-Type: application / json"? -header ($ header) - $ friendlyDate = Data ( "M d, Y") - $ Unixtime = time () - $ mês = Data ( "M ") - $ dayOfWeek = data (" l ") - $ year = data (" Y ") - $ returnData = array (" friendlyDate "=> $ friendlyDate," Unixtime "=> $ Unixtime," monthNum "=> $ mês ", dayOfWeek" => $ dayOfWeek, "yearNum" => $ year) -print json_encode ($ returnData) ->

Quando visto em um navegador, o código retorna dados como o mostrado.

image2.jpg

Com essa saída arraylike, é fácil acessar os elementos individuais. Digamos que você tenha um aplicativo que precisa de saber o dia da semana. Você pode chamar o serviço web e usar o built-in json_decode () PHP função para obter acesso ao dia da semana elemento. A listagem a seguir mostra o código para consumir um serviço web.

lt; php $ curlHandle = curl_init ( "http: //localhost/date.php")? -curl_setopt ($ curlHandle, CURLOPT_HEADER, 0) -curl_setopt ($ curlHandle, CURLOPT_RETURNTRANSFER, 1) - $ output = curl_exec ($ curlHandle) - $ decodificado = json_decode ($ output, TRUE) -print $ decodificado [ 'dayOfWeek'] ->?

Quando esta página é exibida em um navegador, a saída é simplesmente o dia da semana. O código usa a biblioteca cURL, que se conecta com o PHP através de um conjunto de funções poderosas para interagir com páginas da web e sites, incluindo formas comunicantes. Neste caso, o código inicializa o objecto cURL (através curl_init ()), Define algumas opções, em seguida, carrega a URL.

A saída é salvo em uma variável chamada $ output, que é então descodificada usando o json_decode () função. o booleana VERDADE que você vê dentro do json_decode () função define a saída como uma matriz, que é o que você quer. Finalmente, o dia da semana é recuperado a partir da saída descodificados e exibidos para a tela.

Este padrão é bastante típico do consumo de serviços web. Na verdade, é comum a criação de uma função compartilhada ou uma classe para cURL para que você possa chamar serviços da web cURL sem ter que incluir este mesmo código em todos os seus arquivos.

Então, qual é a vantagem de chamar um serviço data web em vez de simplesmente chamar a encontro() função? Depende. Por um lado, você poderia argumentar que a criação de uma função de data comum que retorna todos os tipos de formatos é mais fácil do que tentar lembrar a formatação exata para o encontro() função em todos os lugares que você precisar.

Por outro lado, você poderia dizer que chamar um serviço web pode retardar o tempo de resposta global. Ambos são verdadeiras e válidas.

o encontro() função é usada neste capítulo, principalmente porque fornece uma maneira fácil de demonstrar retornar dados de um serviço web, sem os seus autores de livros humildes ter que explicar muito sobre o que o encontro() função está fazendo.

menu