mirror of
https://github.com/internetee/registry.git
synced 2025-06-10 14:44:47 +02:00
Add handling of type filters and handling of ETags
Add API documentation and test cases around ETags for the API.
This commit is contained in:
parent
960e4084e3
commit
6e5a97ad4d
5 changed files with 182 additions and 19 deletions
96
doc/repp/v1/retained_domains.md
Normal file
96
doc/repp/v1/retained_domains.md
Normal file
|
@ -0,0 +1,96 @@
|
|||
## GET /repp/v1/retained_domains
|
||||
|
||||
Return a list of reserved and blocked domains, along with total count. You can
|
||||
filter them by type of the domain, which can be either reserved or blocked.
|
||||
|
||||
In contrast with other endpoints in REPP, this one is publicly available for
|
||||
anyone without authentication.
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Field name | Required | Type | Allowed values | Description |
|
||||
| ---------- | -------- | ---- | -------------- | ----------- |
|
||||
| type | false | string | ["reserved", "blocked"] | Type of domains to show |
|
||||
|
||||
|
||||
#### Request
|
||||
|
||||
```
|
||||
GET /repp/v1/retained_domains?type=reserved HTTP/1.1
|
||||
Accept: application/json
|
||||
User-Agent: curl/7.64.1
|
||||
```
|
||||
|
||||
#### Response
|
||||
|
||||
```
|
||||
HTTP/1.1 200 OK
|
||||
Date: Fri, 15 May 2020 11:30:07 GMT
|
||||
Content-Type: application/json; charset=utf-8
|
||||
ETag: W/"a905b531243a6b0be42beb9d6ce60619"
|
||||
Cache-Control: max-age=0, private, must-revalidate
|
||||
Transfer-Encoding: chunked
|
||||
|
||||
{
|
||||
"count": 1,
|
||||
"domains": [
|
||||
{
|
||||
"name": "reserved.test",
|
||||
"status": "reserved",
|
||||
"punycode_name": "reserved.test"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
After you have made the first request, you can save the ETag header, and
|
||||
send it as If-None-Match in the subsequent request for cache validation.
|
||||
Due to the fact that the lists are not changing frequently and are quite long,
|
||||
it is recommended that you take advantage of ETag cache.
|
||||
|
||||
ETag key values depend on the request parameters. A request for only blocked
|
||||
domains returns different cache key than request for all domains.
|
||||
|
||||
### Cache Request
|
||||
|
||||
```
|
||||
GET /repp/v1/retained_domains?type=reserved HTTP/1.1
|
||||
Accept: application/json
|
||||
User-Agent: curl/7.64.1
|
||||
If-None-Match: W/"a905b531243a6b0be42beb9d6ce60619"
|
||||
```
|
||||
|
||||
#### Cache hit response
|
||||
|
||||
Response with no body and status 304 is sent in case the list have not changed.
|
||||
|
||||
```
|
||||
HTTP/1.1 304 Not Modified
|
||||
Date: Fri, 15 May 2020 11:34:25 GMT
|
||||
ETag: W/"a905b531243a6b0be42beb9d6ce60619"
|
||||
Cache-Control: max-age=0, private, must-revalidate
|
||||
```
|
||||
|
||||
#### Cache miss response
|
||||
|
||||
Standard 200 response is sent when the list have changed since last requested.
|
||||
|
||||
|
||||
```
|
||||
HTTP/1.1 200 OK
|
||||
Date: Fri, 15 May 2020 11:30:07 GMT
|
||||
Content-Type: application/json; charset=utf-8
|
||||
ETag: W/"a905b531243a6b0be42beb9d6ce60619"
|
||||
Transfer-Encoding: chunked
|
||||
|
||||
{
|
||||
"count": 1,
|
||||
"domains": [
|
||||
{
|
||||
"name": "reserved.test",
|
||||
"status": "reserved",
|
||||
"punycode_name": "reserved.test"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue