API Overview
CaterCow Internal API
CaterCow's internal API is organized into three main namespaces: /caterer, /orderer, and /public. These APIs are primarily designed for internal use, powering various Vue.js frontends and internal tools.
Versioning
CaterCow uses versioned API paths (e.g., /v1/, /v2/), but these do not represent fixed, immutable contracts. Newer resources and endpoints are introduced in the latest version, and changes are generally non-breaking. If a newer API version exists, the older one may still be available for legacy frontend dependencies, but it is likely to be phased out over time.
Authentication
- Internal Use: Most endpoints are intended for use with session-based authentication (cookies).
- API Tokens: All endpoints also support authorization headers with API tokens. This is required for clients like the attendee app, which cannot use cookies.
Namespaces
Public
The /public namespace exposes endpoints that do not require authentication. These are used for public-facing features, such as viewing menus, searching for caterers, or accessing general information.
Caterer
Endpoints under /caterer are for caterer-facing features, such as managing menus, orders, payouts, and kitchen operations. These are used by caterer dashboards and admin tools.
Orderer
The /orderer namespace provides endpoints for customers and orderers to browse menus, place orders, manage their account, and interact with polls or group orders.
Note: All APIs are subject to change and are not intended as public, stable contracts. When integrating, verify with a back-end developer that the endpoints you plan to use plan to be supported in the long-term.