API REST Flashcards
What is curl?
It is a tool that gives you the possibility to interact remotely to other resources.
How do you start using curl to make a get request?
1) Se inicicializa:
```
$resource=curl__init(‘https://zealous-tick-sandals.cyclic.app/elements/1’);
2) Se setean las opciones:
curl_setopt($resource,CURLOPT_RETURNTRANSFER,true);
3) Se ejecuta y gurada en una variable el resultado:
$result=curl_exec($resource);
4) Se cierra:
curl_close($resource);
~~~
Luego puedo usar el $result que tiene la data para lo que necesite.
Qué es lo primero que hay que hacer cuando se trabaja con curl?
Inicializarlo y guardarlo en una variable:
$resource=curl_init($url);
Si es con get se le pasa la url si es con post no.
Qué se hace después de inicializar curl para una get request?
Se setean las opciones:
curl_setopt($resource, CURLOPT_RETURNTRANSFER, true);
el $resource es la variable donde guarde la inicialización.
CURLOPT_RETURNTRANSFER: Nos permite almacenar la respuesta en la variable $data en lugar de mostrar el resultado en pantalla.
true para devolver el resultado de la transferencia como string del valor de curl_exec() en lugar de mostrarlo directamente.
Cuál es el tercer paso al usar curl para una get request?
Se ejecuta y se guarda el resultado en una variable
$result=curl_exec($resource);
Cuál es el cuarto paso al usar curl para una get request?
Se cierra:
curl_close($resource);
How do you do to get information about the request?
Before executing it you need to do:
$info=curl_getinfo($resource)
How do you do to see the HTTP code from the response?
Before closing it and after the execution.
$code=curl_getinfo($resource, CURLINFO_CODE)
How do you make a post request with curl?
1) $resource=curl_init();
2) $user=[ ‘name’=> ‘John Doe’,
‘username’=>’john’,
‘email’=>’john@example.com’
]
3) curl_setopt_array($resource, [
CURLOPT_URL=>$url,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_POST=>true,
CURLOPT_POSTFIELDS=>json_encode($user),
CURLOPT_HTTPHEADER=>[‘content-type: application/json’
]);
4) $result=curl_exec($resource);
5) curl_close($resource);
echo $result;
What are the options you need to set in curl for a post request?
There are 5 options you need to set:
1) the URL,
2) the returntransfer
3) the type of request(post)
4) the body of the post (o post field)
5) the HTTP headers
Ex:
curl_setopt_array($resource, [ CURLOPT_URL=>$url, CURLOPT_RETURNTRANSFER=>true, CURLOPT_POST=>true, CURLOPT_POSTFIELDS=>json_encode($user), CURLOPT_HTTPHEADER=>['content-type: application/json' ]);
Qué es CURLOPT_RETURNTRANSFER?
CURLOPT_RETURNTRANSFER: Nos permite almacenar la respuesta en la variable $data en lugar de mostrar el resultado en pantalla.
true para devolver el resultado de la transferencia como string del valor de curl_exec() en lugar de mostrarlo directamente.
Cómo se hace una get request con file_get_content?
$url = 'https://zealous-tick-sandals.cyclic.app/elements/8'; $response = file_get_contents($url); $element = json_decode($response, true); echo '<pre>'; var_dump($element); echo '</pre>';
Qué es json_decode?
’ json_decode() ‘ es una function en PHP que convierte una cadena JSON en un objeto o array PHP.
La funcion toma como argumento una cadena JSON y opcionalmente un segundo argumento booleano que indica si se deasea convertir la cadena JSON en un objeto (‘false’) o en un array(‘true’).
Que quiere decir el true en
$element = json_decode($response, true);
Quiere decir que se quiere que php convierta el file $response que es de tipo JSON en un array de php.
Cómo se puede hacer un post request con file_get_content?
$url = 'https://jsonplaceholder.typicode.com/users'; $data = ['name'=>'John Doe', 'username'=>'joeD','email'=>'joedoe@example.com']; $options = [ 'http'=>[ 'method'=>'POST', 'header'=>'Content-Type:application/x-www-form-urlencoded', 'content'=>http_build_query($data) ] ]; $context = stream_context_create($options); $response = file_get_contents($url, false, $context); var_dump($response);