Skip to content

Instantly share code, notes, and snippets.

@EtienneR
Created March 14, 2016 23:38
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save EtienneR/e8bf29839474217e893d to your computer and use it in GitHub Desktop.
Save EtienneR/e8bf29839474217e893d to your computer and use it in GitHub Desktop.
Simple API JSON (go run recipe.go --> http://127.0.0.1:3000)
package main
import (
"encoding/json"
"fmt"
"net/http"
)
type Recipe struct {
Title string `json:"title"`
Steps []Steps `json:"steps"`
Conclusion string `json:"conclusion"`
}
type Steps struct {
Step string `json:"step"`
Ingredients []Ingredients `json:"ingredients"`
Instructions []string `json:"instructions"`
}
type Ingredients struct {
Quantity int `json:"quantity"`
Measure string `json:"measure"`
Name string `json:"name"`
}
func main() {
http.HandleFunc("/", recipeHandler)
http.ListenAndServe(":3000", nil)
}
func recipeHandler(w http.ResponseWriter, r *http.Request) {
recipe := Recipe{
Title: "Twix maison",
Steps: []Steps{
Steps{
Step: "le biscuit (shortbread)",
Ingredients: []Ingredients{
Ingredients{
Quantity: 125,
Measure: "g",
Name: "chocolat noir",
},
Ingredients{
Quantity: 50,
Measure: "g",
Name: "sucre",
},
Ingredients{
Quantity: 175,
Measure: "g",
Name: "farine",
},
},
Instructions: []string{
"Préchauffez le four à 180°C.",
"Mélangez le beurre et le sucre de façon à obtenir une crème.",
"Ajoutez la farine puis bien malaxer la pâte et en faire une boule (avec les mains).",
"Posez la pâte au fond d’un moule beurré et fariné (c’est mieux de mettre de mettre du papier de cuisson…). Étalez bien la pâte à l’aide de votre poing.",
"Enfournez pour 20 min (le sablé sera légèrement doré) ou 18 min pour un moule de 24*24 cm.",
"Laisser refroidir pendant 1 heure environ à température ambiante",
},
},
Steps{
Step: "le caramel (toffe)",
Ingredients: []Ingredients{
Ingredients{
Quantity: 125,
Measure: "g",
Name: "beurre",
},
Ingredients{
Quantity: 400,
Measure: "g",
Name: "lait concentré sucré",
},
Ingredients{
Quantity: 3,
Measure: "CàS",
Name: "miel",
},
},
Instructions: []string{
"Mettez tous les ingrédients dans une casserole à feu doux et tournez jusqu’à ce que le mélange ait fondu.",
"Mettez le feu un plus fort pour porter le mélange à ébullition et tournez sans arrêt pendant 5 minutes afin que le mélange ne colle pas.",
"Versez le toffee dans le moule (au dessus du biscuit).",
"Laisser refroidir pendant 1 heure environ à température ambiante",
},
},
Steps{
Step: "le nappage au chocolat",
Ingredients: []Ingredients{
Ingredients{
Quantity: 200,
Measure: "g",
Name: "chocolat",
},
},
Instructions: []string{
"Faites fondre la tablette de chocolat au bain marie ou au micro-onde (3 minutes à 600W sans oublier la cloche).",
"Étalez le chocolat fondu sur le toffee (ce dernier doit être bien figé dans le moule).",
"Laisser refroidir pendant 1 demi heure environ à température ambiante puis placer le moule dans le réfrigérateur.",
},
},
},
Conclusion: "Laissez refroidir le moule à température ambiante puis mettez le au frigo. Démoulez, découpez avec un couteau à la lame chaude en petits carrés et dégustez :)",
}
json, _ := json.Marshal(recipe)
w.Header().Set("Content-Type", "text/json; charset=UTF-8")
fmt.Fprint(w, string(json))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment