Tongji University · API Governance Rules
Tongji University API Rules
Spectral linting rules defining API design standards and conventions for Tongji University.
0 Rules
Spectral Ruleset
---
generated: '2026-09-01'
method: derived
source: >-
Derived from the Tongji University Open Platform's own published conventions —
https://api.tongji.edu.cn/docs/intro/develop/authentication, .../scopes, .../limit (all HTTP 200,
2026-09-01) — and from the 42 interfaces modelled in
openapi/_original/tongji-open-platform-openapi.yml. These are the platform's conventions written
down as checkable rules; they are API Evangelist's articulation, not a ruleset Tongji publishes.
provider: Tongji University
providerId: tongji
x-operator: institution
description: >-
A governance ruleset for the Tongji Open Platform, written against the platform's own observed and
documented behaviour. Useful two ways: as a conformance check for a new interface added to the
platform, and as a gap list — three of the rules below the platform currently fails on its own
error paths.
rules:
- id: response-envelope
severity: error
status: observed-conformant
given: Any interface returning HTTP 200
then: >-
The body must be a JSON object with `code`, `data` and `msg`. `code` must be A00000 on success.
Confirmed on all thirteen live responses captured 2026-09-01.
- id: envelope-on-failure
severity: error
status: observed-nonconformant
given: Any interface returning 401, 404 or 405
then: >-
The body should carry the same envelope with a business code explaining the failure. It does not:
401 returns a zero-length body, 404 and 405 return plain text from the gateway. See
errors/tongji-open-platform-errors.yml.
- id: bearer-token-transport
severity: error
status: observed-conformant
given: Any interface not marked 无需授权可直接访问
then: >-
The access_token must be presented in an `Authorization` header using the Bearer scheme; a
token must never be accepted in the query string.
- id: scope-per-interface
severity: warn
status: observed-conformant
given: Any interface
then: >-
A named scope should exist for it in the realm's scopes_supported, following the route naming
convention (rt_research_patent for /v1/rt/research/patent). 491 scopes are published.
- id: anonymous-only-for-reference-data
severity: error
status: observed-conformant
given: An interface documented as 无需授权可直接访问
then: >-
It must return reference/code-table data only, never person-level records. All thirteen anonymous
interfaces return code tables; none returns personal data.
- id: rate-limit-declared
severity: warn
status: observed-conformant
given: Any interface
then: >-
The default 50 requests/second limit applies unless the interface's own page declares a tighter
one; 429 is the throttle code.
- id: rate-limit-headers
severity: warn
status: observed-nonconformant
given: Any interface response
then: >-
A rate-limit signal should be returned in headers (RateLimit / RateLimit-Policy or
X-RateLimit-*). None was present on any of the thirteen live responses captured 2026-09-01 — the
limit is documented in prose only.
- id: upstream-system-declared
severity: info
status: observed-conformant
given: Any data interface
then: >-
The documentation should name the upstream system of record (数据来源, e.g. SYS20230146 专利管理系统).
38 of 42 modelled interfaces declare one. This is a provenance practice most university platforms
do not have and it is worth crediting.
- id: no-gateway-version-disclosure
severity: warn
status: observed-nonconformant
given: Any gateway-level error response
then: >-
The gateway product and version should not be advertised. `X-Krakend: Version 2.4.2` is returned
on 404 and 405.
maintainers:
- FN: Kin Lane
email: kin@apievangelist.com
Work with this as data
Every ruleset here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for spectral rules
4 MCP tools reach this
find_rulesBrowse and filter every ruleset in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This ruleset
curl "https://apis.io/api/v1/rules/tongji-open-platform-rules"
All spectral rules
curl "https://apis.io/api/v1/rules?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.