Projekt

Obecné

Profil

Stáhnout (7.87 KB) Statistiky
| Větev: | Tag: | Revize:
1 6b3c455c hlavja
openapi: 3.0.1
2
info:
3
  title: SensLog
4
  description: 'ASWI semestral project of CodeBakers.'
5
  version: 1.0.0
6
externalDocs:
7
  description: Find out more about Swagger
8 f86d42a9 hlavja
  url: https://swagger.io
9 f8b9a3a2 hlavja
10 6b3c455c hlavja
tags:
11
- name: login
12
  description: Login process
13
  externalDocs:
14
    description: Find out more
15
    url: https://www.senslog.org/api/v1/
16
- name: group
17
  description: Groups endpoints
18 1d6ec56f hlavja
- name: data
19
  description: Data endpoints
20 db9d0213 hlavja
- name: observation
21
  description: Observations endpoints
22 a7285540 hlavja
- name: analytics
23
  description: Analitics endpoints
24 1d6ec56f hlavja
25 6b3c455c hlavja
paths:
26 f8b9a3a2 hlavja
  /senslog1/ControllerServlet:
27 6b3c455c hlavja
    post:
28
      tags:
29
      - login
30
      summary: Authorize login
31
      operationId: login
32 f8b9a3a2 hlavja
      parameters:
33 6b3c455c hlavja
        - in: query
34 f8b9a3a2 hlavja
          name: username
35 6b3c455c hlavja
          schema:
36
            type: string
37
          description: User login
38
        - in: query
39
          name: password
40
          schema:
41
            type: string
42
          description: User password
43
      responses:
44
        200:
45
          description: successful operation
46
          content:
47
            application/json:
48
              schema:
49 f8b9a3a2 hlavja
                $ref: '#/components/schemas/UserInfo'
50
51
  /senslog1/GroupService:
52 6b3c455c hlavja
    get:
53
      tags:
54
      - group
55
      summary: Get groups
56
      operationId: getGroups
57
      parameters:
58
        - in: query
59 f8b9a3a2 hlavja
          name: Operation
60 6b3c455c hlavja
          required: true
61
          schema:
62
            type: string
63
            default: GetGroups
64
            enum:
65
            - GetGroups
66
            - GetSuperGroups
67
            - GetSubGroups
68
          description: Group operation
69
        - in: query
70
          name: parent_group
71
          schema:
72
            type: integer
73
      responses:
74
        200:
75
          description: successful operation
76
          content:
77
            application/json:
78
              schema:
79
                type: array
80
                items:
81
                  $ref: '#/components/schemas/Group'
82 f8b9a3a2 hlavja
83 db9d0213 hlavja
  /senslog1/SensorService?Operation=GetObservations:
84
    get:
85
      tags:
86
        - observation
87
      summary: Get observation
88
      operationId: getObservation
89
      parameters:
90
        - in: query
91
          name: unit_id
92
          required: true
93
          schema:
94
            type: integer
95
        - in: query
96
          name: sensor_id
97
          required: true
98
          schema:
99
            type: integer
100
        - in: query
101
          name: from
102
          schema:
103
            type: string
104
        - in: query
105
          name: to
106
          schema:
107
            type: string
108
      responses:
109
        200:
110
          description: Get observation for unitId and sensorId
111
          content:
112
            application/json:
113
              schema:
114
                type: array
115
                items:
116
                  $ref: '#/components/schemas/Observation'
117
118 1d6ec56f hlavja
  /senslog1/DataService?Operation=GetUnits:
119
    get:
120
      tags:
121
        - data
122
      summary: Get data
123
      operationId: getData
124
      responses:
125
        200:
126
          description: successful operation
127
          content:
128
            application/json:
129
              schema:
130
                type: array
131
                items:
132
                  oneOf:
133
                    - type: object
134
                      properties:
135
                        drivers:
136
                          $ref: '#/components/schemas/Drivers'
137
                        generalInfo:
138
                          $ref: '#/components/schemas/GeneralInfo'
139
                        holder:
140
                          nullable: true
141
                        lastpos:
142
                          $ref: '#/components/schemas/Lastpos'
143
                        sensors:
144
                          type: array
145
                          items:
146
                            $ref: '#/components/schemas/Sensor'
147
                        unit:
148
                          $ref: '#/components/schemas/Unit'
149
150 a7285540 hlavja
  /analytics/analytics:
151
    get:
152
      tags:
153
        - analytics
154
      summary: Get analytics
155
      operationId: getAnalytics
156
      parameters:
157
        - in: query
158
          name: unit_id
159
          required: true
160
          schema:
161
            type: integer
162
        - in: query
163
          name: sensor_id
164
          required: false
165
          schema:
166
            type: integer
167
        - in: query
168
          name: from
169
          schema:
170
            type: string
171
        - in: query
172
          name: to
173
          schema:
174
            type: string
175
        - in: query
176
          name: interval
177
          schema:
178
            type: string
179
      responses:
180
        200:
181
          description: Get observation for unit
182
          content:
183
            application/json:
184
              schema:
185
                type: array
186
                properties:
187
                  sensor:
188
                    $ref: '#/components/schemas/Sensors'
189
190 6b3c455c hlavja
components:
191
  schemas:
192 f8b9a3a2 hlavja
    UserInfo:
193 6b3c455c hlavja
      type: object
194
      properties:
195
        sessionid:
196
          type: string
197
        language:
198
          type: string
199
        audio:
200
          type: boolean
201 1d6ec56f hlavja
        rights:
202
          type: integer
203 f8b9a3a2 hlavja
204 6b3c455c hlavja
    Group:
205
      type: object
206
      properties:
207
        id:
208
          type: integer
209
        parent_group_id:
210
          type: integer
211
        group_name:
212
          type: string
213
        has_children:
214
          type: boolean
215 1d6ec56f hlavja
216
    Unit:
217
      type: object
218
      properties:
219
        description:
220
          type: string
221
        holderId:
222
          type: integer
223
        unitId:
224
          type: integer
225
226
    Phenomenon:
227
      type: object
228
      properties:
229
        phenomenonId:
230
          type: string
231
        phenomenonName:
232
          type: string
233
        unit:
234
          type: string
235
236
    Sensor:
237
      type: object
238
      properties:
239
        firstObservationTime:
240
          type: string
241
          format: date-time
242
        lastObservationTime:
243
          type: string
244
          format: date-time
245
        phenomenon:
246
          $ref: '#/components/schemas/Phenomenon'
247
        sensorId:
248
          type: integer
249
        sensorName:
250
          type: string
251
        sensorType:
252
          type: string
253
254
    Position:
255
      type: object
256
      properties:
257
        SRID:
258
          type: string
259
        gid:
260
          type: integer
261
        group_id:
262
          type: integer
263
        postgisGeomString:
264
          type: string
265
        postgisString:
266
          type: string
267
        speed:
268
          type: integer
269
        time_stamp:
270
          type: string
271
          format: date-time
272
        unit_id:
273
          type: integer
274
        x:
275
          type: number
276
        y:
277
          type: number
278
279
    Attributes:
280
      type: object
281
      properties:
282
        is_online:
283
          type: boolean
284
        is_moving:
285
          type: boolean
286
    #TODO
287
    AlertEvents:
288
      type: array
289
290
    Lastpos:
291
      type: object
292
      properties:
293
        alertEvents:
294
          $ref: '#/components/schemas/AlertEvents'
295
        attributes:
296
          $ref: '#/components/schemas/Attributes'
297
        position:
298
          $ref: '#/components/schemas/Position'
299
    #TODO
300
    GeneralInfo:
301
      type: array
302
    #TODO
303
    Drivers:
304
      type: array
305
306 db9d0213 hlavja
    Observation:
307
      type: object
308
      properties:
309
        gid:
310
          type: integer
311
        time:
312
          type: string
313
          format: date-time
314
        value:
315
          type: number
316
317 a7285540 hlavja
    Sensors:
318
      type: object
319
      properties:
320
        sensorsData:
321
          $ref: '#/components/schemas/SensorsData'
322
323
    SensorsData:
324
      type: object
325
      properties:
326
        interval:
327
          type: number
328
        data:
329
          $ref: '#/components/schemas/Data'
330
        statistics:
331
          $ref: '#/components/schemas/Statistics'
332
333
    Data:
334
      type: object
335
      properties:
336
        observation:
337
          $ref: '#/components/schemas/Obser'
338
339
    Obser:
340
      type: object
341
      properties:
342
        min:
343
          type: number
344
        max:
345
          type: number
346
        avg:
347
          type: number
348
        sum:
349
          type: number
350
        timestamp:
351
          type: string
352
          format: date-time
353
354
    Statistics:
355
      type: object
356
      properties:
357
        min:
358
          type: number
359
        max:
360
          type: number
361
        avg:
362
          type: number
363
        sum:
364
          type: number
365
366
367
368
369
370