{8.2.0-new} About Petstore App

### What is the Petstore app?

Petstore is a simple CRUD (Create, Read, Update and Delete) application, which is meant to demonstrate the advantages of the Apache Juneau library. It is a live example showing how any JAVA back-end developer can use Juneau for parsing, POJO serialization and sending different types of serialized POJOs over REST.

### What's the project layout?

Petstore application consists of three main parts, which are connected over REST:

- Database: Apache Derby.
- Server: Java Spring Boot.
- Client: Java Spring Boot or React.

Java back-end and front-end runs on: http://localhost:5000;
React front-end runs on: http://localhost:3000.

Project is based on a standard Spring Boot project structure. There are Models, Repositories, Services.
The main difference here - no Controller classes or @RestController annotations. Instead of it, we use PetStore.java interface class where REST calls are mapped with different methods.

Petstore has three types of DTO objects (database entities): Pets, Orders and Users.

All methods for creating, reading, updating or deleting database entities (pets, orders or users) are provided in PetStoreService.java class.

Example Pet, Order and User objects are created at program startup and saved in the database using JPA (Java Persistence API) and PetStoreService methods.

### How does it work ?

- To get the data which should be displayed, Petstore app client sends http request GET to the back-end server. The response data goes over the REST connection where POJOs get serialized. Petstore client can get and display different types of the same POJO: simple (standard) json format and other (not standard) formats.
- Response data (array of objects) in standard JSON format here is used to generate table content (for example, all Pets in Store).
- Other types of these objects are displayed in the page section "Content types". Here you can get the same POJOs displayed in different formats: json simple, json schema, www form urlencoded, octal/msg, html, html schema, html stripped, openapi, plain text, uon, xml, xml schema, xml soap.
- All readable table content and visual representation of the different content types are generated from the response data.