Lädt...


🔧 </htmx> handle json response


Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to

คราวนี้เราจะลองมาดูวิธีการรับ json response ที่เราได้รับมาจาก API เพื่อมาแสดงผลที่หน้าจอเราแบบง่ายๆกันดู โดยเราจะนำโค้ดจากครั้งที่แล้วมาเติมของให้ดูแบบนี้

index.html

<script src="https://unpkg.com/[email protected]"></script>
<script src="https://unpkg.com/[email protected]/dist/ext/json-enc.js"></script>
<script src="https://unpkg.com/[email protected]/client-side-templates.js"></script>
<script src="https://unpkg.com/mustache@latest"></script>

<div hx-ext="client-side-templates">
    <form hx-post="/api" hx-swap="innerHTML" hx-target="#content" hx-ext="json-enc" mustache-template="mytemplate">
        <div><textarea placeholder="Leave a comment here" name="message" id="message"></textarea></div>
        <div><input type="text" name="name" id="name" placeholder="name" required></div>
        <button type="submit">Submit</button>
    </form>

    <div id="content">replace here</div>

    <template id="mytemplate">
        <p> {{message}} {{name}}</p>
    </template>
</div>

จากนั้นไปดู API แบบง่ายๆเพื่อทำการทดสอบกัน

main.go

package main

import (
    "encoding/json"
    "io"
    "log"
    "net/http"
)

func main() {
    fs := http.FileServer(http.Dir("./"))
    http.Handle("/", fs)

    http.HandleFunc("/api", func(w http.ResponseWriter, r *http.Request) {
        _, err := io.ReadAll(r.Body)
        if err != nil {
            log.Fatal(err)
        }
        r.Body.Close()

        json.NewEncoder(w).Encode(map[string]string{
            "message": "test message",
            "name":    "test name",
        })
    })

    http.ListenAndServe(":8910", nil)
}

หน้าที่ของ API มีเพียงการรับ request เข้ามาแล้วตอบ json message ออกไปง่ายๆ โดยหน้าตาของ response จะเป็นแบบนี้

{
  "message": "test message",
  "name": "test name"
}

ทีนี้เรามาดูตอนรับไปแสดงผล ก่อนอื่นเราต้อง include ตัว extension เข้ามาก่อน 2 ตัวนี้

<script src="https://unpkg.com/[email protected]/client-side-templates.js"></script>
<script src="https://unpkg.com/mustache@latest"></script>

จากนั้นให้ครอบตั้งแต่ form ไปจนถึง target id และ template ด้วย

<div hx-ext="client-side-templates">...</div>

เพื่อเป็นการบอกว่าเราต้องการจะ render ด้วย client-side-templates

ที่ form เราระบุ mustache-template="mytemplate" เพื่อบอกว่า response ที่ได้ เราจะใช้ mustache-template เป็น template ในการแสดงผล

จากนั้นใน template เราสามารถระบุชื่อ field ที่ได้จาก response แบบนี้

{{message}} หมายถึง field ที่ชื่อ message จาก response เลยเป็นต้น

เพียงเท่านี้เราก็สามารถนำ response date มาแสดงผลตามที่เราต้องการได้แล้วครับ

...

🔧 </htmx> handle json response


📈 48.72 Punkte
🔧 Programmierung

🔧 HTMX + Go : Build a CRUD App with Golang and HTMX


📈 36.96 Punkte
🔧 Programmierung

🔧 Django, Htmx e React: usando HTMX para além de TODO-Lists


📈 36.96 Punkte
🔧 Programmierung

🔧 </> htmx post json


📈 28.49 Punkte
🔧 Programmierung

🕵️ QEMU Handle Backend hw/9pfs/9p-handle.c Denial of Service


📈 24.58 Punkte
🕵️ Sicherheitslücken

🕵️ QEMU Handle Backend hw/9pfs/9p-handle.c Denial of Service


📈 24.58 Punkte
🕵️ Sicherheitslücken

📰 Overview of My Tools That Handle JSON Data, (Sat, Jun 15th)


📈 22.3 Punkte
📰 IT Security

📰 Practicing Your Crisis Response: How Well Can You Handle Right of Boom?


📈 20.23 Punkte
📰 IT Security Nachrichten

📰 Practicing Your Crisis Response: How Well Can You Handle Right of Boom?


📈 20.23 Punkte
📰 IT Security Nachrichten

🍏 JSON Editor 1.36 - Flexible visual editor for JSON data.


📈 20.02 Punkte
🍏 iOS / Mac OS

🕵️ cpp-ethereum JSON-RPC admin_peers API JSON Request erweiterte Rechte


📈 20.02 Punkte
🕵️ Sicherheitslücken

🕵️ CVE-2024-6255 | gaizhenbiao ChuanhuChatGPT up to 20240410 JSON File config.json file inclusion


📈 20.02 Punkte
🕵️ Sicherheitslücken

🔧 Validating JSON with JSON Schema and PHP


📈 20.02 Punkte
🔧 Programmierung

🕵️ cpp-ethereum JSON-RPC admin_nodeInfo API JSON Request privilege escalation


📈 20.02 Punkte
🕵️ Sicherheitslücken

🕵️ netplex json-smart-v1/json-smart-v2 unusual condition [CVE-2021-27568]


📈 20.02 Punkte
🕵️ Sicherheitslücken

🕵️ cpp-ethereum JSON-RPC admin_nodeInfo API JSON Request erweiterte Rechte


📈 20.02 Punkte
🕵️ Sicherheitslücken

🔧 Stop Using JSON.parse(JSON.stringify(object)) for Deep Cloning! Try This Instead


📈 20.02 Punkte
🔧 Programmierung

🕵️ cpp-ethereum JSON-RPC admin_peers API JSON Request privilege escalation


📈 20.02 Punkte
🕵️ Sicherheitslücken

🔧 iter.json: A Powerful and Efficient Way to Iterate and Manipulate JSON in Go


📈 20.02 Punkte
🔧 Programmierung

🕵️ OWASP json-sanitizer up to 1.2.1 JSON denial of service


📈 20.02 Punkte
🕵️ Sicherheitslücken

🕵️ cpp-ethereum JSON-RPC admin_addPeer API JSON Request erweiterte Rechte


📈 20.02 Punkte
🕵️ Sicherheitslücken

🕵️ cpp-ethereum JSON-RPC miner_setEtherbase API JSON Request privilege escalation


📈 20.02 Punkte
🕵️ Sicherheitslücken

🔧 iter.json: A Powerful and Efficient Way to Iterate and Manipulate JSON in Go


📈 20.02 Punkte
🔧 Programmierung

🕵️ Aleth Ethereum C++ Client up to 1.8.0 JSON File config.json stack-based overflow


📈 20.02 Punkte
🕵️ Sicherheitslücken

🔧 Best Three Open Source JSON RPC Projects(Kiota, Hono, tRPC) -- easier to dev client json code


📈 20.02 Punkte
🔧 Programmierung

🕵️ cpp-ethereum JSON-RPC miner_setGasPrice API JSON Request privilege escalation


📈 20.02 Punkte
🕵️ Sicherheitslücken

🕵️ Medium CVE-2016-20005: Rest\/json project Rest\/json


📈 20.02 Punkte
🕵️ Sicherheitslücken

🔧 Is there any tool available for JSON where I can manipulate JSON data?


📈 20.02 Punkte
🔧 Programmierung

🕵️ cpp-ethereum JSON-RPC miner_start API JSON Request privilege escalation


📈 20.02 Punkte
🕵️ Sicherheitslücken

🔧 One Extension, Every JSON Feature: The Complete Story of JSON Viewer Plus


📈 20.02 Punkte
🔧 Programmierung

🕵️ wp-courses Plugin up to 2.0.27 on WordPress JSON REST API /wp-json authorization


📈 20.02 Punkte
🕵️ Sicherheitslücken

🕵️ CVE-2024-23732 | Embedchain up to 0.1.56 JSON Loader json.py redos


📈 20.02 Punkte
🕵️ Sicherheitslücken

matomo