Files
guilan-ace-backend/docs/content-api-v1.md

1.9 KiB

Public content API v1

Status: approved by the owner on 2026-09-27. These anonymous GET endpoints expose the latest saved CMS values. Content saves are live immediately; there are no revision, publication, or preview fields or routes.

Routes

  • GET /api/v1/content/site returns shared association identity, navigation labels, contacts, footer copy, logo, and SEO defaults.
  • GET /api/v1/content/pages/home returns the fixed Home fields and SEO.
  • GET /api/v1/content/pages/about returns the fixed About fields, SEO, and its typed text items.
  • GET /api/v1/content/pages/events and /api/v1/content/pages/blog return listing copy and SEO. Event and blog records remain owned by their existing APIs.

Unknown page slugs and missing fixed records return 404. Successful content responses send Cache-Control: no-store, so a saved admin edit is available on the next API request. Image values are either null or { "url": "absolute media URL", "alt": "description" }. Route paths are code-owned; the API returns only the fixed route keys and editable labels.

Shapes

Site response:

{
  "official_name": "Association name",
  "short_name": "Association",
  "faculty_subline": "Faculty name",
  "description": "Shared description",
  "logo": null,
  "navigation": { "home": "Home", "about": "About", "events": "Events", "blog": "Blog" },
  "contacts": { "email": "", "phone": "", "telegram": "", "instagram": "", "website": "" },
  "address": "",
  "footer_copy": "",
  "seo": { "title": "", "description": "", "image": null }
}

Every page response has slug, title, intro, and seo: { title, description, image }. Home adds its fixed hero, featured event/post introductions, and participation fields. About adds its fixed identity, mission, activities, values, committee, affiliation, FAQ, and contact fields plus items: [{ kind, title, text, position }]. Events and Blog listing responses contain only their page copy and SEO fields.