An open API service indexing awesome lists of open source software.

https://github.com/innogames/springfox-protobuf

Glue for SpringFox to support Protobuf Messages
https://github.com/innogames/springfox-protobuf

Last synced: 3 months ago
JSON representation

Glue for SpringFox to support Protobuf Messages

Awesome Lists containing this project

README

          

# Springfox Protobuf Support
This module aims to add usable support to sue protobuf messages in springfox. It provides a jackson module that
can be registered in SpringFox's `ObjectMapper`.

The provided module does not handle the actual (de-)serialization of messages. Use e.g. the
[jackson-datatype-protobuf](https://github.com/HubSpot/jackson-datatype-protobuf) module for that functionality.

## Setup
Add this module and jackson-datatype-protobuf to your dependencies.

Configure SpringFox's `ObjectMapper`. Also specify that your endpoints can produce json (either via e.g.
`@GetMapping(produces="application/json")` or via your `Docket`).

```java
@Configuration
@EnableSwagger2
public class SpringFoxConfiguration implements ApplicationListener {
/** Configure SpringFox's internal ObjectMapper. */
@Override
public void onApplicationEvent(ObjectMapperConfigured event) {
event.getObjectMapper().registerModule(new ProtobufModule());
event.getObjectMapper().registerModule(new ProtobufPropertiesModule());
}

/** Set up Docket for endpoints that produce protobuf. */
@Bean
public Docket myDocket() {
return new Docket(DocumentationType.SWAGGER_2)
// your normal configuration
.produces(new HashSet<>(Arrays.asList("application/json", "application/x-protobuf")));
}
}
```

## Usage
Open up springfox as usual. Protobuf endpoints should show up with their properties and be usable. Make sure to
select `application/json` in the dropdown to get the human readable representation.