API JSON
Renvoyez du JSON
API JSON est une leçon Ruby Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Ruby Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ruby Academy comprend 4 leçons au total.
Pourquoi des API JSON ?
JSON est le format de données standard des API web. Les clients envoient et reçoivent des données structurées plutôt que du HTML.
- Indépendant du langage
- Se traduit naturellement en tables de hachage et tableaux Ruby
- Léger et lisible par l’être humain
La bibliothèque standard de Ruby gère JSON au moyen du module json.
require 'json'
data = { name: 'Ada', langs: ['Ruby', 'Python'] }
puts data.to_jsonConvertir Ruby en JSON
Appelez to_json sur une table de hachage ou un tableau, ou utilisez JSON.generate.
- Les symboles et les chaînes deviennent des clés JSON
- Les structures imbriquées sont converties récursivement
require 'json'
user = { id: 1, active: true, tags: ['admin'] }
puts JSON.generate(user)Mise en forme lisible de JSON
Pour obtenir une sortie lisible, utilisez JSON.pretty_generate.
- Ajoute une indentation et des sauts de ligne
- Très utile pour le débogage et les journaux
- À éviter dans les réponses de production pour économiser des octets
require 'json'
config = { server: { host: 'localhost', port: 4567 } }
puts JSON.pretty_generate(config)Analyser les entrées JSON
Utilisez JSON.parse pour transformer une chaîne JSON entrante en objets Ruby.
- Par défaut, les clés sont des chaînes
- Transmettez
symbolize_names: truepour utiliser des clés symboliques
require 'json'
raw = '{"name": "Ada", "age": 30}'
data = JSON.parse(raw)
puts data['name']
puts data['age']Clés symboliques
Les clés symboliques sont pratiques et légèrement plus rapides à rechercher.
- Activez-les avec
symbolize_names: true - Soyez prudent avec les entrées non fiables qui créent de nombreux symboles
require 'json'
raw = '{"city": "Istanbul"}'
data = JSON.parse(raw, symbolize_names: true)
puts data[:city]Renvoyer du JSON depuis Sinatra
Dans une route Sinatra, définissez le type de contenu et renvoyez une chaîne JSON.
content_type :jsondéfinit l’en-tête- Renvoyez
hash.to_jsoncomme corps
require 'sinatra'
require 'json'
get '/api/status' do
content_type :json
{ status: 'ok', time: Time.now.to_i }.to_json
endLire le corps d’une requête JSON
Pour les API POST, lisez le corps brut et analysez-le.
request.body.readfournit la chaîne brute- Analysez-la avec
JSON.parse
require 'sinatra'
require 'json'
post '/api/users' do
payload = JSON.parse(request.body.read)
content_type :json
{ created: payload['name'] }.to_json
endConstruire un hachage de réponse d’API
Pour garantir la cohérence des réponses, construisez un hachage structuré avant de le sérialiser.
- Placez les données sous une clé
data - Incluez le statut et les métadonnées
require 'json'
def api_response(data, status: 'ok')
{ status: status, data: data }.to_json
end
puts api_response({ id: 1, name: 'Ada' })Gérer les erreurs d’analyse
Un JSON malformé lève JSON::ParserError. Gérez-le toujours.
- Renvoyez une réponse 400 « Requête incorrecte » au client
- Ne laissez jamais une erreur d’analyse faire planter l’application
require 'json'
begin
JSON.parse('{ broken')
rescue JSON::ParserError => e
puts "Invalid JSON: #{e.message}"
endSérialiser des tableaux d’objets
Les collections se sérialisent naturellement sous forme de tableaux JSON.
- Un tableau de hachages devient un tableau d’objets
- Utilisez
mappour mettre en forme chaque enregistrement
require 'json'
users = [{ id: 1, name: 'Ada' }, { id: 2, name: 'Bob' }]
output = users.map { |u| { name: u[:name] } }
puts output.to_jsonto_json personnalisé sur des objets
Vous pouvez apprendre à une classe à se sérialiser en définissant to_json ou as_json.
- Convertissez l’état interne en hachage simple
- Masquez les champs privés de l’API
require 'json'
class User
def initialize(id, name)
@id = id
@name = name
end
def to_json(*)
{ id: @id, name: @name }.to_json
end
end
puts User.new(1, 'Ada').to_jsonVérification rapide
Vérifiez vos connaissances des API JSON.
Récapitulatif
Vous avez appris à créer des API JSON :
require 'json'depuis la bibliothèque standardto_json/JSON.generatesérialisent Ruby en JSONJSON.parsedésérialise le JSON reçu- Définissez
content_type :jsondans les routes Sinatra - Gérez toujours
JSON::ParserError
Ensuite, vous découvrirez Rack et les intergiciels.
Questions Fréquemment Posées
La leçon « API JSON » est-elle gratuite ?
Oui — le texte complet de « API JSON » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Ruby Academy, passe à CoddyKit PRO. Le cours Ruby Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « API JSON » ?
Renvoyez du JSON Tu pratiques Ruby Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Ruby Academy ?
Aucune expérience préalable n'est requise. Ruby Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « API JSON » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Ruby Academy ?
Oui. Chaque leçon Ruby Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.