Every site is a node, and a node’s identity is its address. Nodes share no database; they exchange JSON “envelopes” over HTTP. Anyone may run a node of their own.
Discovery
Each kind of node publishes a discovery document at a fixed address stating what it is, which languages it supports and where its interfaces are:
| Node | Address |
|---|---|
| Dish library | /.well-known/canyin-dish-hub |
| Restaurant node | /.well-known/canyin-venue |
| Supply site | /.well-known/canyin-supply-hub |
| Recommended dish library | /.well-known/caipin-library |
Discovery documents need pretty permalinks; the interfaces themselves work without them.
Public interfaces
| Interface | Content |
|---|---|
sxck/v1/dishes | Dish search: keyword, category, cuisine, paging |
sxck/v1/dish/{code} | One dish’s envelope with its recipe; JSON-LD available |
sxck/v1/ingredients | The ingredient library |
sxck/v1/categories | Dish categories |
sxgx/v1/supply | Supply catalogue search: kind, category, keyword, paging |
sxcy/v1/menu | A restaurant’s multilingual menu |
Writing and review
- Contributions to a dish library or supply site enter a review queue and are accepted or rejected by that site’s operator; open contribution can be switched off.
- A restaurant’s supply needs are not published by default; when published they carry an access token.
- A restaurant’s management interfaces (restaurants, dishes, menus, tables, orders) require application-password authentication, and members can act only on their own restaurants.
Data namespace
In JSON-LD output, Reasoning Dining’s own vocabulary uses the namespace https://dishes.reresearch.org/canyin/ns#.
This page is a summary. Full field and interface documentation ships with each plugin. [address of the technical manual]