Class RdapEntitySearchAction
- All Implemented Interfaces:
Runnable
All commands and responses conform to the RDAP spec as defined in RFCs 7480 through 7485.
The RDAP specification lumps contacts and registrars together and calls them "entities", which is confusing for us, because "entity" means something else in SQL. But here, when we use the term, it means either a contact or registrar. When searching for entities, we always start by returning all matching contacts, and after that all matching registrars.
There are two ways to search for entities: by full name (for contacts, the search name, for registrars, the registrar name) or by handle (for contacts, the ROID, for registrars, the IANA number). The ICANN operational profile document specifies this meaning for handle searches.
Cursors are complicated by the fact that we are essentially doing two independent searches: one for contacts, and one for registrars. To accommodate this, the cursor has a prefix indicating the type of the last returned item. If the last item was a contact, we return c:{value}, where the value is either the search name or the ROID. If the last item was a registrar, we return r:{value}, where the value is either the registrar name or the IANA number. If we get a c: cursor, we use it to weed out contacts, and fetch all registrars. If we get an r: cursor, we know that we can skip the contact search altogether (because we returned a registrar, and all registrars come after all contacts).
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class google.registry.rdap.RdapActionBase
RdapActionBase.DeletedItemHandling
-
Field Summary
Fields inherited from class google.registry.rdap.RdapSearchActionBase
cursorString
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiongoogle.registry.rdap.RdapSearchResults.EntitySearchResponse
getSearchResponse
(boolean isHeadRequest) Parses the parameters and calls the appropriate search function.Methods inherited from class google.registry.rdap.RdapSearchActionBase
decodeCursorToken, encodeCursorToken, filterResourcesByVisibility, getDesiredRegistrar, getJsonObjectForResource, getRequestUrlWithExtraParameter, getRequestUrlWithExtraParameter, shouldBeVisible, shouldBeVisible, shouldBeVisible
Methods inherited from class google.registry.rdap.RdapActionBase
run
-
Constructor Details
-
RdapEntitySearchAction
@Inject public RdapEntitySearchAction()
-
-
Method Details
-
getSearchResponse
public google.registry.rdap.RdapSearchResults.EntitySearchResponse getSearchResponse(boolean isHeadRequest) Parses the parameters and calls the appropriate search function.- Specified by:
getSearchResponse
in classRdapSearchActionBase
-