Welcome to CodeRanch Jonathon.
I hope that you find the community here welcoming, helpful, knowledgeable and sharing.
To answer your question about some of the differences between the two tutorials:
This tutorial
https://spring.io/guides/gs/accessing-data-rest/ titled "Accessing JPA Data with REST" interacts with a database the h2database to be exact.
This is why it uses the @RepositoryRestResource notation.
Plus this tutorial uses the @SpringBootApplication notation
Tutorial wrote:@SpringBootApplication is a convenience annotation that adds all of the following:
@Configuration tags the class as a source of bean definitions for the application context.
@EnableAutoConfiguration tells Spring Boot to start adding beans based on classpath settings, other beans, and various property settings.
Normally you would add @EnableWebMvc for a Spring MVC app, but Spring Boot adds it automatically when it sees spring-webmvc on the classpath.
This flags the application as a web application and activates key behaviors such as setting up a DispatcherServlet.
@ComponentScan tells Spring to look for other components, configurations, and services in the hello package, allowing it to find the controllers.
Tutorial wrote:At runtime, Spring Data REST will create an implementation of this interface automatically.
Then it will use the @RepositoryRestResource annotation to direct Spring MVC to create RESTful endpoints at /people.
Spring Boot "magically" creates some of the end points that you may need when dealing with data.
However you may still need to add in some extra logic, in which case you would need to use a controller.
This tutorial
https://spring.io/guides/gs/rest-service/ titled "Building a RESTful Web Service" does not access any sort of database or use Spring Data.
It simply maps a value form the URL to the output. This is why you need a controller, to handle the mapping and any other logic you may need to program.
--------------------
Jonathon Roberts wrote:To give more ideas on my API. I basically envisage it needing some authentication (likely OAuth) and authorization. eg authenticated to view x and authorized to edit x.
You may want to look at this tutorial
https://spring.io/guides/tutorials/spring-boot-oauth2/ which is a bit more in depth then some of the other ones out there.