diff --git a/CHANGELOG.md b/CHANGELOG.md
index 46974611..5932928d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,7 +6,7 @@ All notable changes to this project will be documented in this file.
### Improvements
- Paused ping handling can be controlled via API (#376)
- Add "Get a list of checks's logged pings" API call (#371)
-- Allowed the /api/v1/checks/ endpoint to receive a UUID or `unique_key` (#370)
+- The /api/v1/checks/ endpoint now accepts either UUID or `unique_key` (#370)
### Bug Fixes
diff --git a/hc/api/urls.py b/hc/api/urls.py
index ce0541f8..422ee154 100644
--- a/hc/api/urls.py
+++ b/hc/api/urls.py
@@ -5,7 +5,7 @@ from hc.api import views
class QuoteConverter:
- regex = "[\w%~_.-]+"
+ regex = r"[\w%~_.-]+"
def to_python(self, value):
return unquote(value)
@@ -13,7 +13,8 @@ class QuoteConverter:
def to_url(self, value):
return quote(value, safe="")
-class UniqueKeyConverter:
+
+class SHA1Converter:
regex = "[A-z0-9]{40}"
def to_python(self, value):
@@ -22,8 +23,9 @@ class UniqueKeyConverter:
def to_url(self, value):
return value
+
register_converter(QuoteConverter, "quoted")
-register_converter(UniqueKeyConverter, "unique_key")
+register_converter(SHA1Converter, "sha1")
urlpatterns = [
path("ping/
GET SITE_ROOT/api/v1/checks/<uuid>
GET SITE_ROOT/api/v1/checks/<unique_key>
POST SITE_ROOT/api/v1/checks/
When using the read-only API key, the following fields are omitted:
ping_url
, update_url
, pause_url
, channels
. An extra unique_key
field
-is added. This identifier is stable across API calls. Example:
GET
a check in place of the UUID
. The unique_key
identifier is stable across API calls. Example:
{
"checks": [
{
@@ -188,8 +192,11 @@ is added. This identifier is stable across API calls. Example:
Get a Single Check
-GET SITE_ROOT/api/v1/checks/<uuid>
-Returns a JSON representation of a single check.
+GET SITE_ROOT/api/v1/checks/<uuid>
+GET SITE_ROOT/api/v1/checks/<unique_key>
+Returns a JSON representation of a single check. Accepts either check's UUID or
+the unique_key
(a field derived from UUID, and returned by API responses when
+using the read-only API key) as an identifier.
Response Codes
- 200 OK
diff --git a/templates/docs/api.md b/templates/docs/api.md
index caf74b6f..678bc892 100644
--- a/templates/docs/api.md
+++ b/templates/docs/api.md
@@ -9,7 +9,7 @@ Endpoint Name | Endpoint Address
------------------------------------------------------|-------
[Get a list of existing checks](#list-checks) | `GET SITE_ROOT/api/v1/checks/`
[Get a single check](#get-check) | `GET SITE_ROOT/api/v1/checks/`
-[Get a single check (using Read Only API)](#get-check) | `GET SITE_ROOT/api/v1/checks/`
+[Get a check by its unique_key](#get-check) | `GET SITE_ROOT/api/v1/checks/`
[Create a new check](#create-check) | `POST SITE_ROOT/api/v1/checks/`
[Update an existing check](#update-check) | `POST SITE_ROOT/api/v1/checks/`
[Pause monitoring of a check](#pause-check) | `POST SITE_ROOT/api/v1/checks//pause`
@@ -166,9 +166,12 @@ is added which can be used [to `GET` a check](#get-check) in place of the `UUID`
```
## Get a Single Check {: #get-check .rule }
-`GET SITE_ROOT/api/v1/checks/` OR `GET SITE_ROOT/api/v1/checks/`
+`GET SITE_ROOT/api/v1/checks/`
+`GET SITE_ROOT/api/v1/checks/`
-Returns a JSON representation of a single check. Can take either the UUID or the `unique_key` (see [information above](#list-checks)) as the identifier of the check to return.
+Returns a JSON representation of a single check. Accepts either check's UUID or
+the `unique_key` (a field derived from UUID, and returned by API responses when
+using the read-only API key) as an identifier.
### Response Codes