Skip to content

Commit 89b7de5

Browse files
authored
Merge pull request #195 from traP-jp/feat/#193-control-exec-api
control ↔ exec の API を追加
2 parents 58013bf + 7b898cf commit 89b7de5

File tree

1 file changed

+120
-0
lines changed

1 file changed

+120
-0
lines changed

api/judge/exec/to_control.yaml

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
openapi: "3.0.3"
2+
info:
3+
title: exec to control API
4+
version: "0.1"
5+
license:
6+
name: MIT
7+
url: "https://github.com/traP-jp/traO-Judge-docs/blob/main/LICENSE"
8+
servers:
9+
- url: https://api.server.test/v1
10+
paths:
11+
"/execute":
12+
post:
13+
operationId: execute
14+
description: control container から file placed message を受け取り,ジャッジの実行を開始する.
15+
tags:
16+
- judge
17+
requestBody:
18+
content:
19+
application/json:
20+
schema:
21+
$ref: "#/components/schemas/FilePlacedMessage"
22+
required: true
23+
summary: ジャッジの実行を開始
24+
responses:
25+
"200":
26+
description: OK
27+
content:
28+
application/json:
29+
schema:
30+
$ref: "#/components/schemas/JudgeResultMessage"
31+
"400":
32+
description: Bad Request
33+
components:
34+
schemas:
35+
File:
36+
title: File
37+
type: object
38+
description: ファイル
39+
properties:
40+
fileId:
41+
title: fileId
42+
type: string
43+
description: ファイルの UUID
44+
format: uuid
45+
example: 01234567-89ab-cdef-0123-456789abcdef
46+
filePath:
47+
title: filePath
48+
type: string
49+
description: ファイルのパス
50+
example: "/path/to/file"
51+
required:
52+
- fileId
53+
- filePath
54+
FilePlacedMessage:
55+
title: FilePlacedMessage
56+
type: object
57+
description: ジャッジの実行を開始するトリガーとなるメッセージ
58+
properties:
59+
cmd:
60+
title: cmd
61+
type: string
62+
description: コマンド
63+
example: cmd
64+
envs:
65+
title: envs
66+
type: object
67+
description: 環境たち
68+
additionalProperties:
69+
title: env
70+
type: string
71+
description: 環境
72+
example: env
73+
optionalInfo:
74+
title: optionalInfo
75+
type: object
76+
description: 任意の情報
77+
properties:
78+
execTime:
79+
title: execTime
80+
type: number
81+
description: 実行時間
82+
example: 1.23
83+
memorySize:
84+
title: memorySize
85+
type: number
86+
description: メモリ使用量(byte)
87+
example: 123456789
88+
language:
89+
title: language
90+
type: string
91+
description: 使用言語
92+
example: python
93+
required:
94+
- cmd
95+
- envs
96+
JudgeResultMessage:
97+
title: JudgeResultMessage
98+
type: object
99+
description: ジャッジの実行を終了したコンテナから受け取るメッセージ
100+
properties:
101+
exitCode:
102+
title: exitCode
103+
type: integer
104+
description: 終了コード
105+
example: 0
106+
stdout:
107+
$ref: "#/components/schemas/File"
108+
stderr:
109+
$ref: "#/components/schemas/File"
110+
readonlyFiles:
111+
title: readonlyFiles
112+
type: array
113+
description: ジャッジに使用したファイル(読み取り専用)
114+
items:
115+
$ref: "#/components/schemas/File"
116+
required:
117+
- exitCode
118+
- stdout
119+
- stderr
120+
- readonlyFiles

0 commit comments

Comments
 (0)