Adapters
Base API adapter implementation for odin-control.
Tim Nicholls, STFC Detector System Software Group
ApiAdapter
API adapter base class.
This class defines the basis for all API adapters and provides default methods for supported HTTP verbs and for lifecycle management. Dervied adapters can either override these methods explciitly to provide custom behavior, or adopt the adapter-controller pattern by specifying controller and error clases, and allowing default methods in this class to interface requests to the controller.
Source code in src/odin_control/adapters/adapter.py
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 | |
__init__(**kwargs)
Initialise the ApiAdapter object.
This method initialises the adapter, loading any keyword arguments into the options dictionary, and instantiating the controller if a controller class has been specified
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
kwargs
|
keyword argument list that is copied into options dictionary |
{}
|
Source code in src/odin_control/adapters/adapter.py
cleanup()
Clean up adapter state.
This method is a default implementation of the cleanup mechanism provided to allow adapters to clean up their state (e.g. disconnect cleanly from the device being controlled, set some status message).
Source code in src/odin_control/adapters/adapter.py
delete(path, request)
Handle an HTTP DELETE request.
This method is a default implementation of the DELETE request handler for adapters. It calls the delete method of the controller and returns the result. Error handling is provided to catch controller errors and return appropriate error responses.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
URI path of resource |
required | |
request
|
HTTP request object passed from handler |
required |
Returns:
| Type | Description |
|---|---|
|
ApiAdapterResponse container of data, content-type and status_code |
Source code in src/odin_control/adapters/adapter.py
get(path, request)
Handle an HTTP GET request.
This method is a default implementation of the GET request handler for adapters. It calls the get method of the controller and returns the result. Error handling is provided to catch controller errors and return appropriate error responses.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
URI path of resource |
required | |
request
|
HTTP request object passed from handler |
required |
Returns:
| Type | Description |
|---|---|
|
ApiAdapterResponse container of data, content-type and status_code |
Source code in src/odin_control/adapters/adapter.py
initialize(adapters)
Initialize the ApiAdapter after it has been registered by the API Route.
This method allows the adapter to perform any initialization that requires access to other loaded adapters. It receives a dictionary of loaded adapters from the API route and passes them to the controller's initialize method, if a controller has been configured.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
adapters
|
a dictionary of the adapters loaded by the API route. |
required |
Source code in src/odin_control/adapters/adapter.py
post(path, request)
Handle an HTTP POST request.
This method is a default implementation of the POST request handler for adapters. It calls the create method of the controller and returns the result. Error handling is provided to catch controller errors and return appropriate error responses.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
URI path of resource |
required | |
request
|
HTTP request object passed from handler |
required |
Returns:
| Type | Description |
|---|---|
|
ApiAdapterResponse container of data, content-type and status_code |
Source code in src/odin_control/adapters/adapter.py
put(path, request)
Handle an HTTP PUT request.
This method is a default implementation of the PUT request handler for adapters. It calls the set method of the controller with the specified data and returns the result of a subsequent get call. Error handling is provided to catch controller errors and return appropriate error responses.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
URI path of resource |
required | |
request
|
HTTP request object passed from handler |
required |
Returns:
| Type | Description |
|---|---|
|
ApiAdapterResponse container of data, content-type and status_code |