Τρόπος χρήσης του CURL για αποστολή αιτημάτων API

Σε αυτό το άρθρο, θα συζητήσουμε τον τρόπο χρήσης curl για αλληλεπίδραση με RESTful APIs. curl είναι ένα βοηθητικό πρόγραμμα γραμμής εντολών που μπορεί να χρησιμοποιηθεί για την αποστολή αιτημάτων σε ένα API.

Τα αιτήματα API αποτελούνται από τέσσερα διαφορετικά μέρη:

  • Το τελικό σημείο. Αυτή είναι η διεύθυνση URL στην οποία στέλνουμε αιτήματα.
  • Η μέθοδος HTTP. Η δράση που θέλουμε να κάνουμε. Οι πιο συνηθισμένες μέθοδοι είναι GET POST PUT DELETE και PATCH
  • Οι κεφαλίδες. Οι κεφαλίδες που θέλουμε να στείλουμε μαζί με το αίτημά μας, π.χ. κεφαλίδα εξουσιοδότησης.
  • Το σώμα. Τα δεδομένα που θέλουμε να στείλουμε στο api.


σύνταξη curl

Η σύνταξη για το curl η εντολή είναι:


curl [options] [URL...]

Οι επιλογές που θα καλύψουμε σε αυτήν την ανάρτηση είναι:

  • -X ή --request - Μέθοδος HTTP που θα χρησιμοποιηθεί
  • -i ή --include - Συμπεριλάβετε τις κεφαλίδες απόκρισης
  • -d ή --data - Τα δεδομένα που πρέπει να σταλούν στο API
  • -H ή --header - Τυχόν πρόσθετες κεφαλίδες προς αποστολή


HTTP GET

Η μέθοδος GET χρησιμοποιείται για φέρω έναν πόρο από έναν διακομιστή. Στο curl, η μέθοδος GET είναι η προεπιλεγμένη μέθοδος, επομένως δεν χρειάζεται να την καθορίσουμε.


Παράδειγμα:

curl https://jsonplaceholder.typicode.com/posts

Λάβετε παράμετροι ερωτήματος

Μπορούμε επίσης να στείλουμε παραμέτρους ερωτήματος μαζί με το curl Λάβετε αίτημα.

Παράδειγμα:

curl https://jsonplaceholder.typicode.com/posts?userId=5

HTTP POST

Η μέθοδος POST χρησιμοποιείται για δημιουργώ έναν πόρο στο διακομιστή.


Για να στείλετε ένα curl Αίτηση POST χρησιμοποιούμε την επιλογή -X POST.

Δεδομένα φόρμας POST

Παράδειγμα:

curl -X POST -d 'userId=5&title=Post Title&body=Post content.' https://jsonplaceholder.typicode.com/posts

Από προεπιλογή, curl χρήσεις Content-Type: application/x-www-form-urlencoded ως το Content-Type κεφαλίδα, επομένως δεν χρειάζεται να το καθορίσουμε κατά την αποστολή δεδομένων φόρμας.

POST JSON

ΓΙΑ ΝΑ ΑΦΑΙΡΕΣΕΤΕ JSON από curl πρέπει να καθορίσουμε το Content-Type ως application/json.


Παράδειγμα:

curl -X POST -H 'Content-Type: application/json'
-d '{'userId': 5, 'title': 'Post Title', 'body': 'Post content.'}'
https://jsonplaceholder.typicode.com/posts


HTTP PUT

Η μέθοδος PUT χρησιμοποιείται για εκσυγχρονίζω ή αντικαθιστώ έναν πόρο στο διακομιστή. Αντικαθιστά όλα τα δεδομένα του καθορισμένου πόρου με τα παρεχόμενα δεδομένα αιτήματος.

Σημείωση:Για ένα αίτημα PUT, πρέπει να παρέχουμε όλα τα δεδομένα στο σώμα αιτήσεων.

Για να στείλετε ένα curl Αίτημα PUT χρησιμοποιούμε την επιλογή -X PUT.

Παράδειγμα:


curl -X PUT -H 'Content-Type: application/json'
-d '{'userId': 5, 'title': 'New Post Title', 'body': 'New post content.'}'
https://jsonplaceholder.typicode.com/posts/5

Το παραπάνω αίτημα PUT θα αντικαταστήσει την ανάρτησή μας που δημιουργήθηκε προηγουμένως με το 'New post title' και 'New post body'



HTTP PATCH

Η μέθοδος PATCH χρησιμοποιείται για την κατασκευή μερικές ενημερώσεις στον πόρο του διακομιστή.

Σημείωση:Για ένα αίτημα PATCH, δεν χρειάζεται να παρέχουμε όλα τα δεδομένα. Στέλνουμε μόνο τα δεδομένα που θέλουμε να ενημερώσουμε.

Για να στείλετε ένα curl Αίτημα PATCH χρησιμοποιούμε την επιλογή -X PATCH.

Παράδειγμα:


curl -X PATCH -H 'Content-Type: application/json'
-d '{'userId': 5, 'body': 'Updated post content.'}'
https://jsonplaceholder.typicode.com/posts/5

Παρατηρήστε πώς στέλνουμε μόνο το σώμα με 'Ενημερωμένο περιεχόμενο ανάρτησης' καθώς κάνουμε μια μερική ενημέρωση.



ΔΙΑΓΡΑΦΗ HTTP

Η μέθοδος DELETE χρησιμοποιείται για την κατάργηση του καθορισμένου πόρου από το διακομιστή.

Για να στείλετε ένα curl ΔΙΑΓΡΑΦΗ αιτήματος χρησιμοποιούμε την επιλογή -X DELETE.

curl -X DELETE https://jsonplaceholder.typicode.com/posts/5 Σημείωση:Η μέθοδος DELETE δεν έχει σώμα.

Αυθεντικοποίηση

Μερικές φορές ένα τελικό σημείο του API έχει περιορισμένη πρόσβαση και θα εξυπηρετεί μόνο αιτήματα σε χρήστες με έλεγχο ταυτότητας και εξουσιοδότηση. Για αυτά τα αιτήματα, πρέπει να παρέχουμε ένα διακριτικό πρόσβασης στην κεφαλίδα του αιτήματος.

Για να στείλετε ένα curl κεφαλίδα, χρησιμοποιούμε: -H επιλογή.

Το ακόλουθο αίτημα αποστέλλει αίτημα POST με διακριτικό κομιστή στην κεφαλίδα:

curl -X POST https://some-web-url/api/v1/users -H 'Accept: application/json' -H 'Content-Type: application/json' -H 'Authorization: Bearer {ACCESS_TOKEN}' -H 'cache-control: no-cache' -d '{ 'username' : 'myusername', 'email' : 'myusername@gmail.com', 'password' : 'Passw0rd123!' }'

συμπέρασμα

Σε αυτήν την ανάρτηση μάθαμε πώς να στέλνουμε αιτήματα HTTP (GET, POST, PUT, PATCH και DELETE) σε ένα API χρησιμοποιώντας εντολές curl.