Skip to content

kamranzafar/spring-wpapi

Repository files navigation

Spring WordPress WP-API Client

This is a Spring client for WordPress REST plugin, which makes it easy to integrate Spring Boot applications with WordPress CMS.

Usage

Add the following dependency to your Spring Boot Application

<dependency>
    <groupId>org.kamranzafar.spring.wpapi</groupId>
    <artifactId>spring-wpapi</artifactId>
    <version>0.1</version>
</dependency>

Below is a sample configuration we need in the application.properties file

wpapi.host=yoursite.com
wpapi.port=443   # Optional, default is 80
wpapi.https=true # Optional, default is false

The Spring WP-API client needs the RestTemplate so lets create a bean in our Application and autowire the Spring client. We also need to add component scan annotation so that Spring finds and autowires all the required dependencies.

@SpringBootApplication
@ComponentScan("org.kamranzafar.spring.wpapi")
public class Application implements CommandLineRunner {
    public static void main(String args[]) {
        SpringApplication.run(Application.class);
    }
 
    @Autowired
    private WpApiClient wpApiClient;
 
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

Now just use client to call the WordPress services

Map params = new HashMap<>();
params.put("search", "Spring");
params.put("per_page", "2"); // results per page
params.put("page", "1"); // current page
 
// See WP-API Documentation more parameters
// http://v2.wp-api.org/reference/
 
Post[] posts = wpApiClient.getPostService().getAll(params);
 
for (Post p : posts) {
    log.info("Post: " + p.getId());
    log.info("" + p.getContent());
}

License

Apache Software License 2.0