Comment utiliser HTTPie pour interagir avec les API depuis le terminal

Contenu

HTTPie c'est un client HTTP pour votre terminal. Conçu comme une alternative moderne à curl, HTTPie simplifie l'interaction avec les API en offrant une syntaxe simple et une sortie formatée automatiquement.

Disponible en Windows, Mac et Linux, obtenir la configuration ça devrait être une affaire simple. La plupart des distributions Linux incluent désormais HTTPie dans leurs référentiels de packages, afin que vous puissiez apt, dnf O pacman début. Il est également activé via Homebrew pour les utilisateurs Mac., et sous forme de package Python livré via Pip sur les trois plates-formes (pip install httpie).

Une fois installé, HTTPie enregistre le http et https commandes dans votre shell. Vous disposez désormais d'un moyen simple et expressif d'appeler des points de terminaison d'API sans quitter votre terminal !!

Commandes de base

Dans sa forme la plus simple, HTTPie peut recevoir une URL pour faire un GET application:

http exemple.com

Pour envoyer des données, spécifiez le verbe HTTP approprié, puis transmettez vos paires de clés / valeur en tant que paramètres de ligne de commande supplémentaires:

http POST example.com foo=bar hello=world

Par défaut, les données sont envoyées au format JSON avec les en-têtes de requête appropriés. Pour le soumettre sous forme de formulaire, passe le -f paramètre.

Lors de l'utilisation de la syntaxe JSON, Lors de l'utilisation de la syntaxe JSON. Vous pouvez utiliser le := Lors de l'utilisation de la syntaxe JSON = Lors de l'utilisation de la syntaxe JSON. Lors de l'utilisation de la syntaxe JSON examples:='[1, 2]' Lors de l'utilisation de la syntaxe JSON examples Lors de l'utilisation de la syntaxe JSON.

Lors de l'utilisation de la syntaxe JSON

Lors de l'utilisation de la syntaxe JSON, Lors de l'utilisation de la syntaxe JSON:

Lors de l'utilisation de la syntaxe JSON:Lors de l'utilisation de la syntaxe JSON

Lors de l'utilisation de la syntaxe JSON, Quoi User-Agent, par défaut. Lors de l'utilisation de la syntaxe JSON.

Lors de l'utilisation de la syntaxe JSON:

Lors de l'utilisation de la syntaxe JSON "Lors de l'utilisation de la syntaxe JSON:Lors de l'utilisation de la syntaxe JSON;Lors de l'utilisation de la syntaxe JSON"

En réalité, Lors de l'utilisation de la syntaxe JSON Cookie entête, c’est ainsi que les cookies sont envoyés via HTTP.

Utilisation de fichiers

Vous pouvez charger et télécharger des fichiers à l’aide de redirections shell standard:

http post example.com/upload < ~/example.pdf
http GET example.com/download.pdf > ~/télécharger.pdf

De plus, vous pouvez télécharger des fichiers dans le cadre d'une soumission de formulaire HTTP grâce à l'utilisation de @ syntaxe:

http -f POST example.com/form-with-file bonjour="Bonjour le monde" myUpload@~/example.pdf

Cela agira de la même manière que la saisie d'un fichier HTML avec name="myUpload". À sa place, vous pouvez charger des données à partir d'un fichier et les intégrer dans la requête en utilisant le =@ syntaxe, au lieu de @.

Séances

HTTPie a un support intégré pour les sessions persistantes. Ceux-ci vous permettent de réutiliser les composants de la demande, comme les en-têtes HTTP et les cookies, entre les requêtes faites au même hébergeur.

Vous pouvez créer et utiliser des sessions en configurant le --session paramètre. En tant que valeur, spécifier le chemin d’accès à un fichier qui sera utilisé pour enregistrer votre nouvelle session.

http --session=./my-session.json OBTENIR example.com autorisation:Lors de l'utilisation de la syntaxe JSON

Les données prises en charge par les sessions, comme lui Authorization en-tête dans la demande précédente, il sera maintenant enregistré dans le fichier. Dans les demandes ultérieures, vous pouvez maintenant ignorer le Authorization entête: sera automatiquement inclus tel que défini dans votre session.

Au lieu de spécifier un fichier de session, vous pouvez également utiliser un nom simple (--session=example). Dans cette circonstance, HTTPie enregistrera automatiquement la session dans un fichier géré en interne. Chaque session est liée à l'hôte d'où elle provient, Pour ce que http --session=example example1.com et http --session=example example2.com existeront indépendamment les uns des autres.

Gérer la sortie

L'une des améliorations significatives de HTTPie par rapport aux utilitaires tels que curl est votre formatage de réponse automatique. Les corps JSON sont concrètement bien manipulés, avec une indentation appropriée, classement alphabétique des objets par leurs clés et conversion correcte des caractères Unicode.

Vous pouvez personnaliser la façon dont la sortie est traitée à l'aide de quelques options différentes. Les --pretty le drapeau peut être réglé sur --all (défaut), --colors (seulement des couleurs), --format (juste formater) O --none (pour désactiver tous les traitements de sortie et afficher les données brutes).

En même temps, vous pouvez changer le schéma de couleurs en utilisant le --style drapeau. Les schémas disponibles sont auto (la valeur par défaut), default (utiliser les styles de bibliothèque Pygments sous-jacents), fruity et le populaire monokai.

Vous n'avez pas à vous soucier du format par défaut lorsque vous redirigez la sortie vers un fichier. HTTPie reconnaîtra qu'il est redirigé et dirigera simplement les données sans appliquer de formatage. Cela signifie également que les réponses binaires, qui ne sont régulièrement jamais délivrés au terminal, peut être redirigé dans des fichiers.

Fichier de configuration

HTTPie prend en charge un fichier de configuration de base qui peut être utilisé pour définir la configuration par défaut. Ceux-ci s'appliqueront à toutes les demandes que vous faites. Le fichier doit être enregistré dans ~/.config/httpie/config.json fr Linux / Mac et %APPDATA%httpieconfig.json en Windows.

Une seule clé de configuration est prise en charge, default_options, qui accepte un tableau de base de paramètres à ajouter aux commandes HTTPie que vous exécutez:

{
    "options_défaut": [
        "Autorisation:Lors de l'utilisation de la syntaxe JSON",
        "--joli=aucun",
        "--style=monokai"
    ]
}

Toute option compatible avec l'interface de ligne de commande HTTPie peut être incluse. Vous pouvez remplacer vos options par défaut en les définissant sur une nouvelle valeur chaque fois que vous exécutez HTTPie.

conclusion

HTTPie est un outil complet qui apporte des API HTTP à votre terminal. C'est une alternative moderne aux produits Unix de base comme curl qui est conçu pour une utilisation régulière par les développeurs et les testeurs. Même si la syntaxe peut parfois être lourde, dans l'ensemble c'est expressif et mémorable.

Il est important de noter que vous prenez le temps de lire le documents officiels si vous cherchez à en savoir plus sur HTTPie. Tout le développement se produit à l'extérieur dans GitHub, avec un soutien fourni dans Grille et Débordement de pile.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.