Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions openapi.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
openapi: 3.1.0
info:

Check warning on line 2 in openapi.yml

View workflow job for this annotation

GitHub Actions / Lint / Lint

info-license

Info object should contain `license` field.
title: µEd API - Educational Microservices
version: 0.1.0
contact:
Expand All @@ -22,9 +22,13 @@
paths:
/evaluate:
$ref: "./paths/evaluate/evaluate.yml"
/evaluate/info:
$ref: "./paths/evaluate/evaluate-info.yml"
/evaluate/health:
$ref: "./paths/evaluate/evaluate-health.yml"
/chat:
$ref: "./paths/chat/chat.yml"
/chat/info:
$ref: "./paths/chat/chat-info.yml"
/chat/health:
$ref: "./paths/chat/chat-health.yml"
22 changes: 4 additions & 18 deletions paths/chat/chat-health.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
get:
summary: Health and capabilities of the chat service
summary: Health of the chat service
operationId: getChatHealth
description: >
Returns health information and capabilities of the chat service.
Clients can use this endpoint to discover whether the service supports
optional features such as user preferences or streaming responses.
Returns health of the chat service.
Clients can use this endpoint to discover whether the service is healthy
tags:
- chat
parameters:
- $ref: "../shared/parameters/X-Request-Id.yml"
- $ref: "../shared/parameters/X-Api-Version.yml"
responses:
"200":
description: Chat service is reachable and reporting capabilities.
description: Chat service is reachable and reporting healthy.
headers:
X-Request-Id:
description: Request id for tracing this request across services.
Expand All @@ -33,19 +32,6 @@ get:
status: "OK"
statusMessage: "Service healthy"
version: "1.0.0"
capabilities:
supportsChat: true
supportsUserPreferences: true
supportsStreaming: true
"supportsDataPolicy": "NOT_SUPPORTED"
supportedLanguages:
- "en"
- "de"
supportedModels:
- "gpt-4o"
- "llama-3"
supportedVersions:
- "0.1.0"
"406":
$ref: "./responses/406-VersionNotSupported.yml"
"501":
Expand Down
51 changes: 51 additions & 0 deletions paths/chat/chat-info.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
get:
summary: Information of the chat service
operationId: getChatInfo
description: >
Returns information and capabilities of the chat service.
Clients can use this endpoint to discover whether the service supports
optional features such as user preferences or streaming responses.
tags:
- chat
parameters:
- $ref: "../shared/parameters/X-Request-Id.yml"
- $ref: "../shared/parameters/X-Api-Version.yml"
responses:
"200":
description: Chat service is reachable and reporting capabilities.
headers:
X-Request-Id:
description: Request id for tracing this request across services.
schema:
type: string
X-Api-Version:
description: The API version that was used to serve this response.
schema:
type: string
content:
application/json:
schema:
$ref: "./schemas/ChatInfoResponse.yml"
examples:
exampleInfo:
summary: Example service with capabilities
value:
version: "1.0.0"
capabilities:
supportsChat: true
supportsUserPreferences: true
supportsStreaming: true
"supportsDataPolicy": "NOT_SUPPORTED"
supportedLanguages:
- "en"
- "de"
supportedModels:
- "gpt-4o"
- "llama-3"
supportedVersions:
- "0.1.0"
"406":
$ref: "./responses/406-VersionNotSupported.yml"
"501":
description: The server does not implement the info endpoint for chat.
$ref: "./responses/501-NotImplemented.yml"
5 changes: 1 addition & 4 deletions paths/chat/schemas/ChatHealthResponse.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
type: object
description: Health status and capabilities of the chat service.
description: Health status of the chat service.
required:
- status
- capabilities
properties:
status:
$ref: "../../shared/enums/HealthStatus.yml"
Expand All @@ -16,5 +15,3 @@ properties:
- string
- "null"
description: Optional version of the chat service implementation.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldn't health also have the version?

@m-messer m-messer May 25, 2026 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does have the version on the lines highlighted. Which version do you mean? muEd or the chat function version? Or remove version from info?

capabilities:
$ref: "./ChatCapabilities.yml"
12 changes: 12 additions & 0 deletions paths/chat/schemas/ChatInfoResponse.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
type: object
description: Information and capabilities of the chat service.
required:
- capabilities
properties:
version:
type:
- string
- "null"
description: Optional version of the chat service implementation.
capabilities:
$ref: "./ChatCapabilities.yml"
23 changes: 2 additions & 21 deletions paths/evaluate/evaluate-health.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
get:
summary: Health and capabilities of the evaluate service
summary: Health of the evaluate service
operationId: getEvaluateHealth
description: >
Returns health information and capabilities of the evaluate service.
Clients can use this endpoint to discover whether the service supports
optional features such as pre-submission feedback, formative feedback,
and summative feedback.
Returns health information of the evaluate service.
tags:
- evaluate
parameters:
Expand Down Expand Up @@ -34,22 +31,6 @@ get:
status: "OK"
message: "Service healthy"
version: "1.0.0"
capabilities:
supportsEvaluate: true
supportsPreSubmissionFeedback: false
supportsFormativeFeedback: true
supportsSummativeFeedback: true
supportsDataPolicy: "PARTIAL"
supportedArtefactProfiles:
- supportedFormats: ["text:plain", "text:markdown"]
- supportedFormats:
["code:python", "code:java", "code:javascript"]
- supportedFormats: ["math:latex", "math:mathml"]
supportedLanguages:
- "en"
- "de"
supportedVersions:
- "0.1.0"
"406":
$ref: "./responses/406-VersionNotSupported.yml"
"501":
Expand Down
57 changes: 57 additions & 0 deletions paths/evaluate/evaluate-info.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
get:
summary: Information and capabilities of the evaluate service
operationId: getEvaluateInfo
description: >
Returns information and capabilities of the evaluate service.
Clients can use this endpoint to discover whether the service supports
optional features such as pre-submission feedback, formative feedback,
and summative feedback.
tags:
- evaluate
parameters:
- $ref: "../shared/parameters/X-Request-Id.yml"
- $ref: "../shared/parameters/X-Api-Version.yml"
responses:
"200":
description: Evaluate service is reachable and reporting capabilities.
headers:
X-Request-Id:
description: Request id for tracing this request across services.
schema:
type: string
X-Api-Version:
description: The API version that was used to serve this response.
schema:
type: string
content:
application/json:
schema:
$ref: "./schemas/EvaluateInfoResponse.yml"
examples:
exampleInfo:
summary: Example service with capabilities
value:
version: "1.0.0"
capabilities:
supportsEvaluate: true
supportsPreSubmissionFeedback: false
supportsFormativeFeedback: true
supportsSummativeFeedback: true
supportsDataPolicy: "PARTIAL"
supportedArtefactProfiles:
- type: "TEXT"

Check warning on line 42 in paths/evaluate/evaluate-info.yml

View workflow job for this annotation

GitHub Actions / Lint / Lint

no-invalid-media-type-examples

Example value must conform to the schema: `0` property must NOT have unevaluated properties `type`.
supportedFormats: ["plain", "markdown"]
- type: "CODE"

Check warning on line 44 in paths/evaluate/evaluate-info.yml

View workflow job for this annotation

GitHub Actions / Lint / Lint

no-invalid-media-type-examples

Example value must conform to the schema: `1` property must NOT have unevaluated properties `type`.
supportedFormats: ["python", "java", "javascript"]
- type: "MATH"

Check warning on line 46 in paths/evaluate/evaluate-info.yml

View workflow job for this annotation

GitHub Actions / Lint / Lint

no-invalid-media-type-examples

Example value must conform to the schema: `2` property must NOT have unevaluated properties `type`.
supportedFormats: ["latex", "mathml"]
supportedLanguages:
- "en"
- "de"
supportedVersions:
- "0.1.0"
"406":
$ref: "./responses/406-VersionNotSupported.yml"
"501":
description: The server does not implement the info endpoint for evaluate.
$ref: "./responses/501-NotImplemented.yml"
12 changes: 1 addition & 11 deletions paths/evaluate/schemas/EvaluateHealthResponse.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
type: object
description: Health status and capabilities of the evaluate service.
description: Health status of the evaluate service.
required:
- status
- capabilities
properties:
status:
$ref: "../../shared/enums/HealthStatus.yml"
Expand All @@ -16,12 +15,3 @@ properties:
- string
- "null"
description: Optional version of the evaluate service implementation.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here, I would say health to have version

requirements:
type:
- object
- "null"
description: Optional requirements clients must satisfy to use this service.
allOf:
- $ref: "./EvaluateRequirements.yml"
capabilities:
$ref: "./EvaluateCapabilities.yml"
19 changes: 19 additions & 0 deletions paths/evaluate/schemas/EvaluateInfoResponse.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
type: object
description: Information and capabilities of the evaluate service.
required:
- capabilities
properties:
version:
type:
- string
- "null"
description: Optional version of the evaluate service implementation.
requirements:
type:
- object
- "null"
description: Optional requirements clients must satisfy to use this service.
allOf:
- $ref: "./EvaluateRequirements.yml"
capabilities:
$ref: "./EvaluateCapabilities.yml"
Loading