Bygg på Venue-API:et
Venue CMS är API-först. Allt som administrationsgränssnittet kan läsa kan din webbplats också läsa — evenemang och kalendrar, artistprofiler, platser, sidor och produkter — via ett REST-API och två TypeScript-SDK:er. Du behöver inte vår frontend för att använda vår backend.
Kom igång
Installera @venuecms/sdk-next, lägg din site key och API-nyckel i miljövariablerna och hämta publicerat innehåll. Biblioteket läser båda vid uppstart och signerar varje anrop åt dig. Det här är en komplett evenemangslista:
VENUE_SITE_KEY=your-site-key
VENUE_API_KEY=your-api-keyimport { getEvents } from "@venuecms/sdk-next";
const { data } = await getEvents({ upcoming: true, dir: "asc" });
for (const event of data?.records ?? []) {
console.log(event.slug, event.startDate, event.location?.city);
}OpenAPI-specifikation
Det fullständiga, maskinläsbara kontraktet — varje endpoint, parameter och svarsformat, inklusive de autentiserade skrivoperationer som administrationsgränssnittet självt använder. Generera en typad klient från det i valfritt språk.
Publika endpoints
Den läsbara ytan som en publik webbplats byggs av. Varje anrop är en GET autentiserad med en bearer-token, där site key identifierar din organisation, och varje anrop länkar till sin referenssida. Specifikationen ovan är fortfarande den kompletta listan.
- Referens
- Dokumentation för REST-API:et
- Autentisering
Authorization: Bearer <api-key>
| Endpoint | Returnerar | SDK |
|---|---|---|
GET /site | Site settings, locales and theme | getSite() |
GET /events | Published events, paginated | getEvents() |
GET /events/dates | Years and dates that have events, for calendar UI | getEventDates() |
GET /events/{slug} | A single event | getEvent() |
GET /news | News and blog posts | getNews() |
GET /news/dates | Years and dates that have news posts, for archive UI | getNewsDates() |
GET /news/{slug} | A single news post | getNewsArticle() |
GET /pages | Published pages | getPages() |
GET /pages/{slug} | A single page with its content tree | getPage() |
GET /profiles | Artist and staff profiles | getProfiles() |
GET /profiles/{slug} | A single profile | getProfile() |
GET /profiles/{slug}/events | Events for one artist | getProfileEvents() |
GET /profiles/{slug}/products | Merchandise and releases for one artist | getProfileProducts() |
GET /products | Merchandise and releases | getProducts() |
GET /products/{slug} | A single product | getProduct() |
GET /search | Full-text search | searchSite() |
GET /tags | Tag taxonomy | getTags() |
SDK:er
Två publicerade paket, båda typade och båda genererade från specifikationen ovan, så att inget av dem kan glida ifrån API:et. Välj Next.js-biblioteket om du inte bygger utanför Next.js.
@venuecms/sdk-nextA library optimised for Next.js. It bundles @venuecms/sdk, so there is nothing else to install, and adds React server components for rendering Venue content.
npm install @venuecms/sdk-next@venuecms/sdkThe TypeScript client for the Venue API, for builds outside Next.js. Runs in any fetch-capable runtime.
npm install @venuecms/sdk
Startmall
template-minimal är en fungerande Next.js-webbplats för en konsertlokal — evenemang, artistprofiler, sidor och lokalisering är redan kopplade till SDK:et. Det är den snabbaste korrekta utgångspunkten för ett nytt bygge.
git clone https://github.com/venuecms/template-minimal.gitFullständig dokumentation
Guider, referens och båda SDK:erna i sin helhet. Varje dokumentationssida serverar även Markdown om du lägger till .md i URL:en, och hela materialet finns tillgängligt i en enda förfrågan för språkmodeller.