Introducció

Les APIs REST (Representational State Transfer) són una manera estàndard de comunicar-se amb serveis web. PowerShell, amb la seva capacitat d'automatització i scripting, és una eina poderosa per interactuar amb aquestes APIs. En aquest tema, aprendrem com utilitzar PowerShell per fer peticions a APIs REST, processar les respostes i automatitzar tasques basades en aquestes interaccions.

Conceptes Clau

  1. HTTP Verbs: Els verbs HTTP més comuns són GET, POST, PUT, DELETE, que corresponen a les operacions de lectura, creació, actualització i eliminació de recursos.
  2. Headers: Les peticions HTTP poden incloure headers per proporcionar informació addicional, com ara l'autenticació o el tipus de contingut.
  3. Body: Les peticions POST i PUT sovint inclouen un cos (body) amb les dades que es volen enviar.
  4. Status Codes: Les respostes HTTP inclouen codis d'estat que indiquen si la petició ha estat exitosa (per exemple, 200 OK) o si hi ha hagut algun error (per exemple, 404 Not Found).

Exemple Pràctic: Consumir una API REST

  1. Fer una Petició GET

Comencem amb una petició GET per obtenir dades d'una API pública. Utilitzarem l'API de JSONPlaceholder, que proporciona dades fictícies per a proves.

# URL de l'API
$url = "https://jsonplaceholder.typicode.com/posts"

# Fer la petició GET
$response = Invoke-RestMethod -Uri $url -Method Get

# Mostrar la resposta
$response

Explicació:

  • Invoke-RestMethod: Cmdlet de PowerShell per fer peticions HTTP.
  • -Uri: Especifica la URL de l'API.
  • -Method Get: Indica que es tracta d'una petició GET.

  1. Processar la Resposta

La resposta de l'API és un objecte JSON que PowerShell converteix automàticament en un objecte PowerShell. Podem accedir a les propietats d'aquest objecte fàcilment.

# Accedir al primer post
$primerPost = $response[0]

# Mostrar el títol del primer post
$primerPost.title

  1. Fer una Petició POST

Ara, fem una petició POST per crear un nou recurs. En aquest cas, enviarem un nou post a l'API.

# URL de l'API
$url = "https://jsonplaceholder.typicode.com/posts"

# Dades a enviar
$dades = @{
    title = "Nou Post"
    body = "Aquest és el cos del nou post."
    userId = 1
}

# Convertir les dades a JSON
$jsonDades = $dades | ConvertTo-Json

# Fer la petició POST
$response = Invoke-RestMethod -Uri $url -Method Post -Body $jsonDades -ContentType "application/json"

# Mostrar la resposta
$response

Explicació:

  • -Body: Especifica el cos de la petició.
  • -ContentType "application/json": Indica que el cos de la petició és en format JSON.

  1. Autenticació

Algunes APIs requereixen autenticació. A continuació, es mostra com afegir un header d'autenticació a una petició.

# URL de l'API
$url = "https://api.example.com/protected/resource"

# Token d'autenticació
$token = "Bearer your_access_token"

# Headers
$headers = @{
    Authorization = $token
}

# Fer la petició GET amb autenticació
$response = Invoke-RestMethod -Uri $url -Method Get -Headers $headers

# Mostrar la resposta
$response

Explicació:

  • -Headers: Especifica els headers de la petició, incloent el token d'autenticació.

Exercicis Pràctics

Exercici 1: Fer una Petició GET

  1. Utilitza l'API de JSONPlaceholder per obtenir una llista d'usuaris.
  2. Mostra el nom del primer usuari.

Solució:

# URL de l'API
$url = "https://jsonplaceholder.typicode.com/users"

# Fer la petició GET
$response = Invoke-RestMethod -Uri $url -Method Get

# Mostrar el nom del primer usuari
$response[0].name

Exercici 2: Fer una Petició POST

  1. Utilitza l'API de JSONPlaceholder per crear un nou comentari.
  2. Mostra la resposta de l'API.

Solució:

# URL de l'API
$url = "https://jsonplaceholder.typicode.com/comments"

# Dades a enviar
$dades = @{
    postId = 1
    name = "Nou Comentari"
    email = "[email protected]"
    body = "Aquest és el cos del nou comentari."
}

# Convertir les dades a JSON
$jsonDades = $dades | ConvertTo-Json

# Fer la petició POST
$response = Invoke-RestMethod -Uri $url -Method Post -Body $jsonDades -ContentType "application/json"

# Mostrar la resposta
$response

Errors Comuns i Consells

  1. Error 401 Unauthorized: Assegura't que el token d'autenticació és correcte i que l'API requereix autenticació.
  2. Error 404 Not Found: Verifica que la URL de l'API és correcta.
  3. Error 500 Internal Server Error: Pot ser un problema amb l'API. Revisa la documentació de l'API per a més informació.

Conclusió

En aquest tema, hem après com utilitzar PowerShell per interactuar amb APIs REST. Hem vist com fer peticions GET i POST, processar les respostes i afegir headers d'autenticació. Amb aquests coneixements, pots començar a automatitzar tasques que impliquen la interacció amb serveis web mitjançant APIs REST.

Curs de PowerShell

Mòdul 1: Introducció a PowerShell

Mòdul 2: Scripting Bàsic

Mòdul 3: Treballant amb Objectes

Mòdul 4: Tècniques Avançades de Scripting

Mòdul 5: Automatització i Programació de Tasques

Mòdul 6: Remotització amb PowerShell

Mòdul 7: Funcions Avançades de PowerShell

Mòdul 8: PowerShell i DevOps

Mòdul 9: Millors Pràctiques i Consells Avançats

© Copyright 2024. Tots els drets reservats