Get Structure
Method
REST method is adopted.
HTTP Method
GET: Get single structure
Naming Convention
To unify the naming of query parameters and nodes and improve readability, snake_case is used for URIs and JSON nodes in requests.
Request and Response
Headers
Meta information is set in HTTP headers, not in the response body.
Request Headers
AuthorizationContent-TypeAcceptAccept-language
Response Headers
Content-Type
Get Single Structure
URI
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| organization_id | integer | Required | Organization ID |
| project_id | integer | Required | Project ID |
| structure_id | string | Required | Structure UUID |
Response
The response is JSON.
{
"structureId": "structure-uuid",
"projectId": 1,
"name": "My Structure",
"json": { "key": "value" },
"createdAt": 1234567890000,
"updatedAt": 1234567890000,
"deletedAt": null
}
Response Fields
| Name | Type | Description |
|---|---|---|
| structureId | string | Structure UUID |
| projectId | number | Project ID |
| name | string | Structure name |
| json | object | Structure JSON data |
| createdAt | number | Creation timestamp (epoch milliseconds) |
| updatedAt | number | Update timestamp (epoch milliseconds) |
| deletedAt | number | null | Deletion timestamp (epoch milliseconds); null if not deleted |
Authentication
Authentication is performed using JSON Web Tokens (JWT) issued by Amazon Cognito.
Error Handling
The status codes for error handling are as follows.
| Description | Status Code | Status Name |
|---|---|---|
| Missing credentials | 401 | Unauthorized |
| Insufficient permissions | 403 | Forbidden |
| Structure, project, or organization not found | 404 | Not Found |
| Internal server error | 500 | Internal Server Error |
Processing Flow
- Extract organization ID, project ID, and structure ID from path parameters
- Verify the user has access to the project
- Verify the structure belongs to the specified project
- Return the structure information (including json data)
Detailed Flowchart
flowchart TD
Start([GET Request]) --> Auth[Auth & Parameter Extraction]
Auth --> Service[Service Layer]
Service --> AccessCheck[Access Check]
AccessCheck --> HasAccess{Read permission?}
HasAccess -->|No| Err404[404 Not Found]
HasAccess -->|Yes| QueryDB[Repository Layer]
QueryDB --> FindRecord[Fetch Record<br/>WHERE deletedAt IS NULL]
FindRecord --> Exists{Exists?}
Exists -->|No| Err404
Exists -->|Yes| Format[Format Response]
Format --> Success[200 OK]