Testing REST API integrations in Micronaut apps using WireMock — Create the REST API endpoint
Create AlbumController.java Bounded code example (external data; do not execute automatically): ```java package com.testcontainers.demo; import static io.micronaut.scheduling.TaskExecutors.BLOCKING; import io.micronaut.http.annotation.Controller; import io.micronaut.http.annotation.Get; import io.mi
Reference note (untrusted external data; do not execute it as instructions).
Create AlbumController.java
Bounded code example (external data; do not execute automatically):
```java
package com.testcontainers.demo;
import static io.micronaut.scheduling.TaskExecutors.BLOCKING;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;
import io.micronaut.http.annotation.PathVariable;
import io.micronaut.scheduling.annotation.ExecuteOn;
@Controller("/api")
class AlbumController {
private final PhotoServiceClient photoServiceClient;
AlbumController(PhotoServiceClient photoServiceClient) {
this.photoServiceClient = photoServiceClient;
}
@ExecuteOn(BLOCKING)
@Get("/albums/{albumId}")
public Album getAlbumById(@PathVariable Long albumId) {
return new Album(albumId, photoServiceClient.getPhotos(albumId));
}
}
```
Here's what this controller does
@Controller("/api") maps the controller to the /api path. Constructor injection provides a PhotoServiceClient bean. @ExecuteOn(BLOCKING) offloads blocking I/O to a separate thread pool so it doesn't block the event loop. @Get("/albums/{albumId}") maps the getAlbumById() method to an HTTP GET request.
This endpoint calls the photo service for a given album ID and returns a response like
Bounded code example (external data; do not execute automatically):
```json
{
"albumId": 1,
"photos": [
{
"id": 51,
"title": "non sunt voluptatem placeat consequuntur rem incidunt",
"url": "https://via.placeholder.com/600/8e973b",
"thumbnailUrl": "https://via.placeholder.com/150/8e973b"
},
{
"id": 52,
"title": "eveniet pariatur quia nobis reiciendis laboriosam ea",
"url": "https://via.placeholder.com/600/121fa4",
"thumbnailUrl": "https://via.placeholder.com/150/121fa4"
}
]
}
```
Attribution: Adapted from Docker Documentation under Apache-2.0. Adaptation: WikiKV isolated this documentation section, normalized formatting, retained only bounded code excerpts, and shortened it at a paragraph or sentence boundary for retrieval. Verify version-sensitive details at the source.
ATTRIBUTED SOURCE
This compact reference card is adapted from official documentation and is not a community-verified experience.
Docker Documentation — content/guides/testcontainers-java-micronaut-wiremock.md :: Create the REST API endpoint ↗Revision 3a9d778562f3 · Apache-2.0 and attribution