mirror of
https://github.com/kerberos-io/openalpr-base.git
synced 2024-05-30 09:34:03 +08:00
Added swagger API spec
This commit is contained in:
parent
888fcfca59
commit
0b95da9b4e
@ -1,3 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
make -f makefile clean && make -f makefile html
|
make -f makefile clean && make -f makefile html
|
||||||
|
cp -R swagger/ build/html/api
|
||||||
|
cp source/*.yaml build/html/api/specs/
|
||||||
|
421
doc/source/web_server_api.yaml
Normal file
421
doc/source/web_server_api.yaml
Normal file
@ -0,0 +1,421 @@
|
|||||||
|
---
|
||||||
|
swagger: '2.0'
|
||||||
|
|
||||||
|
info:
|
||||||
|
title: OpenALPR REST API
|
||||||
|
version: v1.0
|
||||||
|
description: |
|
||||||
|
The OpenALPR REST API allows you to search license plate data programmatically from the
|
||||||
|
OpenALPR Web server. Using this API you can search for license plate groups, individual
|
||||||
|
reads, and alerts. You can also retrieve the plate images from the agent.
|
||||||
|
|
||||||
|
tags:
|
||||||
|
-
|
||||||
|
name: webserver
|
||||||
|
description: REST API for the Web Server and plate metadata
|
||||||
|
-
|
||||||
|
name: agent
|
||||||
|
description: REST API for the agent and image data
|
||||||
|
|
||||||
|
paths:
|
||||||
|
/api/search/group:
|
||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- webserver
|
||||||
|
description: Search for ALPR group results
|
||||||
|
parameters:
|
||||||
|
- description: Company UUID used for authentication
|
||||||
|
in: query
|
||||||
|
name: company_id
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
- description: unique ID for the site
|
||||||
|
in: query
|
||||||
|
name: site
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
- description: unique camera number
|
||||||
|
in: query
|
||||||
|
name: camera
|
||||||
|
required: false
|
||||||
|
type: number
|
||||||
|
- description: Start time in ISO 8601 format. At least start or end must be defined.
|
||||||
|
in: query
|
||||||
|
name: start
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
- description: End time in ISO 8601 format. At least start or end must be defined.
|
||||||
|
in: query
|
||||||
|
name: end
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
- description: Plate Number to search for
|
||||||
|
in: query
|
||||||
|
name: plate
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
- description: Search plate using regular expression. Disabled (0) or Enabled (1)
|
||||||
|
in: query
|
||||||
|
name: wildcard
|
||||||
|
required: false
|
||||||
|
type: number
|
||||||
|
- description: Maximum number of results to return
|
||||||
|
in: query
|
||||||
|
name: topn
|
||||||
|
required: false
|
||||||
|
type: number
|
||||||
|
- description: Order can be either desc or asc
|
||||||
|
in: query
|
||||||
|
name: order
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/group'
|
||||||
|
'400':
|
||||||
|
description: "Bad input provided. Adjust the query parameters and try again.\nThe text accompanying the error will provide more detail about which query \nparameters are incorrect.\n"
|
||||||
|
'401':
|
||||||
|
description: "Unauthorized. You must either provide a valid company_id or \nhave a logged in session\n"
|
||||||
|
/api/search/plate:
|
||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- webserver
|
||||||
|
description: Search for individual plate results
|
||||||
|
parameters:
|
||||||
|
- description: Company UUID used for authentication
|
||||||
|
in: query
|
||||||
|
name: company_id
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
- description: unique ID for the site
|
||||||
|
in: query
|
||||||
|
name: site
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
- description: unique camera number
|
||||||
|
in: query
|
||||||
|
name: camera
|
||||||
|
required: false
|
||||||
|
type: number
|
||||||
|
- description: Start time in ISO 8601 format. At least start or end must be defined.
|
||||||
|
in: query
|
||||||
|
name: start
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
- description: End time in ISO 8601 format. At least start or end must be defined.
|
||||||
|
in: query
|
||||||
|
name: end
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
- description: Plate Number to search for
|
||||||
|
in: query
|
||||||
|
name: plate
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
- description: Search plate using regular expression. Disabled (0) or Enabled (1)
|
||||||
|
in: query
|
||||||
|
name: wildcard
|
||||||
|
required: false
|
||||||
|
type: number
|
||||||
|
- description: Maximum number of results to return
|
||||||
|
in: query
|
||||||
|
name: topn
|
||||||
|
required: false
|
||||||
|
type: number
|
||||||
|
- description: Order can be either desc or asc
|
||||||
|
in: query
|
||||||
|
name: order
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/plate'
|
||||||
|
'400':
|
||||||
|
description: "Bad input provided. Adjust the query parameters and try again.\nThe text accompanying the error will provide more detail about which query \nparameters are incorrect.\n"
|
||||||
|
'401':
|
||||||
|
description: "Unauthorized. You must either provide a valid company_id or \nhave a logged in session\n"
|
||||||
|
'/api/detail/group/{group_id}':
|
||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- webserver
|
||||||
|
description: Get detailed results for a group record
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: group_id
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
- description: Company UUID used for authentication
|
||||||
|
in: query
|
||||||
|
name: company_id
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/group_detail'
|
||||||
|
|
||||||
|
'401':
|
||||||
|
description: "Unauthorized. You must either provide a valid company_id or \nhave a logged in session\n"
|
||||||
|
'404':
|
||||||
|
description: |
|
||||||
|
The requested ID was not found
|
||||||
|
'/api/detail/plate/{plate_id}':
|
||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- webserver
|
||||||
|
description: Get detailed results for a plate record
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: plate_id
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
- description: Company UUID used for authentication
|
||||||
|
in: query
|
||||||
|
name: company_id
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/plate_detail'
|
||||||
|
'401':
|
||||||
|
description: "Unauthorized. You must either provide a valid company_id or \nhave a logged in session\n"
|
||||||
|
'404':
|
||||||
|
description: |
|
||||||
|
The requested ID was not found
|
||||||
|
'/img/{uuid}.jpg':
|
||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- agent
|
||||||
|
description: Get an image for the requested plate. This web service is served on port 8355.
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: uuid
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
produces:
|
||||||
|
- image/jpeg
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/plate'
|
||||||
|
'404':
|
||||||
|
description: not found
|
||||||
|
securityDefinitions: {}
|
||||||
|
swagger: '2.0'
|
||||||
|
|
||||||
|
definitions:
|
||||||
|
plate:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
pk:
|
||||||
|
type: integer
|
||||||
|
description: "Unique integer ID for this plate"
|
||||||
|
model:
|
||||||
|
type: string
|
||||||
|
description: "Name of the data type"
|
||||||
|
fields:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
best_confidence:
|
||||||
|
type: number
|
||||||
|
description: "Percent confidence of the license plate result"
|
||||||
|
best_plate:
|
||||||
|
type: string
|
||||||
|
description: "The plate number with the highest confidence"
|
||||||
|
uuid:
|
||||||
|
type: string
|
||||||
|
description: "Unique identifier for the image where the license plate was found"
|
||||||
|
epoch_time:
|
||||||
|
type: string
|
||||||
|
description: "Time that the plate was seen in ISO-8601 format"
|
||||||
|
camera:
|
||||||
|
type: integer
|
||||||
|
description: "Unique ID of the camera"
|
||||||
|
company:
|
||||||
|
type: integer
|
||||||
|
description: "Company ID"
|
||||||
|
site:
|
||||||
|
type: string
|
||||||
|
description: "Site ID where the plate was captured"
|
||||||
|
plate_index:
|
||||||
|
type: integer
|
||||||
|
description: "Within a single image (UUID) there may be multiple plates. This is the unique ID of the single plate within an image"
|
||||||
|
img_width:
|
||||||
|
type: integer
|
||||||
|
description: "Image width in pixels"
|
||||||
|
img_height:
|
||||||
|
type: integer
|
||||||
|
description: "Image height in pixels"
|
||||||
|
processing_time_ms:
|
||||||
|
type: number
|
||||||
|
description: "Time in milliseconds taken to identify the license plate from an image"
|
||||||
|
x1:
|
||||||
|
type: integer
|
||||||
|
description: "Pixel coordinates for the license plate. x1,y1 -> x4,y4 forms a polygon starting from the top-left and working clockwise to the bottom-left corners."
|
||||||
|
y1:
|
||||||
|
type: integer
|
||||||
|
x2:
|
||||||
|
type: integer
|
||||||
|
y2:
|
||||||
|
type: integer
|
||||||
|
x3:
|
||||||
|
type: integer
|
||||||
|
y3:
|
||||||
|
type: integer
|
||||||
|
x4:
|
||||||
|
type: integer
|
||||||
|
y4:
|
||||||
|
type: integer
|
||||||
|
|
||||||
|
group:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
pk:
|
||||||
|
type: integer
|
||||||
|
description: "Unique integer ID for this plate"
|
||||||
|
model:
|
||||||
|
type: string
|
||||||
|
description: "Name of the data type"
|
||||||
|
fields:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
best_confidence:
|
||||||
|
type: number
|
||||||
|
description: "Percent confidence of the license plate result"
|
||||||
|
best_plate:
|
||||||
|
type: string
|
||||||
|
description: "The plate number with the highest confidence"
|
||||||
|
best_index:
|
||||||
|
type: integer
|
||||||
|
description: "Within a single image (UUID) there may be multiple plates. This is the unique ID of the single plate within an image"
|
||||||
|
best_uuid:
|
||||||
|
type: string
|
||||||
|
description: "Unique identifier for the image where the highest confidence license plate was found"
|
||||||
|
epoch_time_start:
|
||||||
|
type: string
|
||||||
|
description: "Time that the plate was initially seen in ISO-8601 format"
|
||||||
|
epoch_time_end:
|
||||||
|
type: string
|
||||||
|
description: "Time that the plate was last seen in ISO-8601 format"
|
||||||
|
camera:
|
||||||
|
type: integer
|
||||||
|
description: "Unique ID of the camera"
|
||||||
|
company:
|
||||||
|
type: integer
|
||||||
|
description: "Company ID"
|
||||||
|
site:
|
||||||
|
type: string
|
||||||
|
description: "Site ID where the plate was captured"
|
||||||
|
|
||||||
|
plate_detail:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
best_confidence:
|
||||||
|
type: number
|
||||||
|
description: "Percent confidence of the license plate result"
|
||||||
|
best_plate:
|
||||||
|
type: string
|
||||||
|
description: "The plate number with the highest confidence"
|
||||||
|
uuid:
|
||||||
|
type: string
|
||||||
|
description: "Unique identifier for the image where the license plate was found"
|
||||||
|
epoch_time:
|
||||||
|
type: string
|
||||||
|
description: "Time that the plate was seen in ISO-8601 format"
|
||||||
|
camera:
|
||||||
|
$ref: '#/definitions/camera_info'
|
||||||
|
regions_of_interest:
|
||||||
|
type: object
|
||||||
|
description: "Areas that were analyzed. Typically wherever motion is found"
|
||||||
|
properties:
|
||||||
|
x: { type: integer }
|
||||||
|
y: { type: integer }
|
||||||
|
width: { type: integer }
|
||||||
|
height: { type: integer }
|
||||||
|
candidates:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
plate_number: { type: string }
|
||||||
|
confidence: { type: number }
|
||||||
|
coordinates:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
x: { type: integer }
|
||||||
|
y: { type: integer }
|
||||||
|
site:
|
||||||
|
type: string
|
||||||
|
description: "Site ID where the plate was captured"
|
||||||
|
plate_index:
|
||||||
|
type: integer
|
||||||
|
description: "Within a single image (UUID) there may be multiple plates. This is the unique ID of the single plate within an image"
|
||||||
|
img_width:
|
||||||
|
type: integer
|
||||||
|
description: "Image width in pixels"
|
||||||
|
img_height:
|
||||||
|
type: integer
|
||||||
|
description: "Image height in pixels"
|
||||||
|
processing_time_ms:
|
||||||
|
type: number
|
||||||
|
description: "Time in milliseconds taken to identify the license plate from an image"
|
||||||
|
|
||||||
|
group_detail:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: integer
|
||||||
|
description: "Unique ID for the group"
|
||||||
|
camera:
|
||||||
|
$ref: '#/definitions/camera_info'
|
||||||
|
site:
|
||||||
|
type: string
|
||||||
|
description: "Site ID where the plate was captured"
|
||||||
|
epoch_time_start:
|
||||||
|
type: string
|
||||||
|
description: "Time that the plate was initially seen in ISO-8601 format"
|
||||||
|
epoch_time_end:
|
||||||
|
type: string
|
||||||
|
description: "Time that the plate was last seen in ISO-8601 format"
|
||||||
|
best_confidence:
|
||||||
|
type: number
|
||||||
|
description: "Percent confidence of the license plate result"
|
||||||
|
best_plate:
|
||||||
|
type: string
|
||||||
|
description: "The plate number with the highest confidence"
|
||||||
|
best_index:
|
||||||
|
type: integer
|
||||||
|
description: "Within a single image (UUID) there may be multiple plates. This is the unique ID of the single plate within an image"
|
||||||
|
best_uuid:
|
||||||
|
type: string
|
||||||
|
description: "Unique identifier for the image where the highest confidence license plate was found"
|
||||||
|
uuids:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
camera_info:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
camera_number:
|
||||||
|
type: integer
|
||||||
|
description: "Unique ID of the camera"
|
||||||
|
camera_name:
|
||||||
|
type: string
|
||||||
|
description: "Friendly name of the camera"
|
Loading…
Reference in New Issue
Block a user