Skip to content

5.11.2.1 Articles

The Articles domain of news. The articles of MooNitoring News: drafts and their translations, review, publication and scheduling, previews and images. The Console is its only caller; readers never reach it, they read the static site built from what is published. It is one API, with its own contract and its own version.

5.11.2.1.1 Versions

Version Status Prod URL Contract
v1 Proposed https://console.moonitoring.com/api/news/articles/v1 articles/v1/openapi.yaml

The resources follow the data model: an Article holds one translation per language of the site, each with its own slug, title and summary, so each language ranks on its own.

5.11.2.1.2 Operations

Every operation names who calls it and the capability it checks (x-moonitoring-audience, x-moonitoring-capability in the contract); every capability is in the catalog of the data model (req 1006). Lists are paged by cursor, writes that create something carry an Idempotency-Key, errors are Problem Details.

Operation Request Who Capability
List articles GET /articles Staff news.articles.write
Create an article POST /articles Staff news.articles.write
Read an article GET /articles/{article_id} Staff news.articles.write
Update an article PATCH /articles/{article_id} Staff news.articles.write
Write a translation PUT /articles/{article_id}/translations/{locale} Staff news.articles.write
Remove a translation DELETE /articles/{article_id}/translations/{locale} Staff news.articles.write
Submit an article for review POST /articles/{article_id}/submit Staff news.articles.write
Publish an article POST /articles/{article_id}/publish Staff news.articles.publish
Unpublish an article POST /articles/{article_id}/unpublish Staff news.articles.publish
Open a preview POST /articles/{article_id}/previews Staff news.articles.write
List images GET /assets Staff news.articles.write
Upload an image POST /assets Staff news.articles.write

5.11.2.1.3 Contract v1

Proposed version

v1 is a proposal for review: its endpoints, errors and capabilities were designed from the requirements and the flows and are not confirmed. It leaves proposal with its first release; from then on it changes only as described in Every API Is Versioned.