---
# System prepended metadata

title: APIV3 JAR Notes

---

# APIV3 Notes

## Mapping and Model

### Mapping (Doctrine)

- Autogenerated by command (Attention to doctrine.yml -> schema_filter)
- We adapt if already exists
- French names by default (from DB)
- We rename fields and filenames to english follow conventions.

### Model

- Autogenerated by command
- We adapt if already exists
- In the context of API-Platform entities are considered models

## Resources

- Representation of data that can be queried, created, updated, or deleted via RESTful API endpoints.
- We copy existing and adapt
- OpenAPI language
- To configure routes/http-operations

## Filters

- We copy existing and adapt
- To customize sorting/filtering
- Used by Resources

## Serialization

- We copy existing and adapt
- To customize responses (read)
- To customize incoming data from parameters (write)
- Used by Resources

## Controllers

- We copy existing and adapt
- To customize resource operations
- To interact with services
- Used by Resources

## Services

- We copy existing and adapt
- To group logic into reusable methods
- Used by Controllers

## Interfaces

- We copy existing and adapt
- To interact with third-party libraries
- To interact with Repositories
- Used by Services

## Repositories

- We copy existing and adapt
- To interact with Doctrine and perform DB operations.
- Used by Interfaces (Mandatory)

## Examples

### Simple scenario

- No filters or special serialization needed
- No controller needed
- No services, interfaces or repositories needed

```
Resource -> Model -> Mapping -> DB
```

### Complex scenario

- We can optionally add filters, serialization, custom controller, use multiple services, interfaces and repositories.

```
Resource -> Filters -> Serialization -> Controller -> Service/s -> Interface/s -> Repositories -> DB
```
