· 4 λεπτά ανάγνωσης

Αποσύνδεση περιεχομένου: Χτίζοντας ένα headless κέντρο τεκμηρίωσης

Πώς ο συνδυασμός WordPress, GraphQL και Astro δημιουργεί μια πολύ γρήγορη και ασφαλή αρχιτεκτονική για εσωτερική τεκμηρίωση.


Οι εταιρικές ομάδες παράγουν τεράστιο όγκο εσωτερικής τεκμηρίωσης. Οι παραδοσιακές μονολιθικές πλατφόρμες CMS συχνά δυσκολεύονται να την παραδώσουν με την ταχύτητα και την ασφάλεια που απαιτούν τα σύγχρονα πρότυπα. Η λύση βρίσκεται σε μια headless αρχιτεκτονική.

Η decoupled αρχιτεκτονική

Αποσυνδέοντας το αποθετήριο περιεχομένου από το επίπεδο παρουσίασης, πετυχαίνουμε ένα πολύ πιο ανθεκτικό σύστημα. Σε μια πρόσφατη εταιρική υλοποίηση χρησιμοποίησα το εξής stack:

  1. Headless WordPress: Λειτουργεί αποκλειστικά ως περιβάλλον διαχείρισης για όσους γράφουν περιεχόμενο, εντελώς κρυμμένο από τον τελικό χρήστη.
  2. GraphQL: Η γλώσσα ερωτημάτων που επιτρέπει στο frontend να φέρνει ακριβώς τα δεδομένα που χρειάζεται, ούτε περισσότερα ούτε λιγότερα.
  3. Astro: Καταναλώνει το GraphQL endpoint κατά το build και παράγει στατικές σελίδες HTML χωρίς JavaScript.

Ανάκτηση δεδομένων με GraphQL

Με το GraphQL τα payloads μένουν ελάχιστα. Αντί να φέρνουμε βαριές απαντήσεις REST, ζητάμε συγκεκριμένα nodes:

query GetDocumentationDocs {
  docs(where: {categoryName: "engineering"}) {
    nodes {
      title
      content
      lastModified
      author {
        node {
          name
        }
      }
    }
  }
}

Επειδή το Astro εκτελεί αυτό το ερώτημα κατά το build, ούτε το GraphQL endpoint ούτε το admin του WordPress εκτίθενται στο δημόσιο internet. Το site που ανεβαίνει είναι καθαρό στατικό HTML σε CDN: κανένα ερώτημα στη βάση ανά αίτημα, καμία επιφάνεια επίθεσης PHP, και οι ενημερώσεις περιεχομένου φτάνουν μέσα από ένα rebuild webhook που ενεργοποιείται σε κάθε δημοσίευση.