An independent guide to building modern software for serverless and native cloud

Connected Car APIs

Solution Guide

Here's a list of the endpoints contained in each of the three APIs in the Connected Car solution.

Admin API

The Admin API enables administrative users in dealerships to manage customers, vehicles, time slots, and appointments. Here is a table of the endpoints in this API:

Operation Action Path & Parameters
CreateDealer POST /admin/dealers
GetDealers GET /admin/dealers?stateCode={stateCode}
GetDealer GET /admin/dealers/{dealerId}
CreateTimeslot POST /admin/dealers/{dealerId}/timeslots
GetTimeslots GET /admin/dealers/{dealerId}/timeslots?startDate={startDate}&endDate={endDate}
GetTimeslot GET /admin/dealers/{dealerId}/timeslots/{serviceDateHour}
CreateCustomer POST /admin/customers
GetCustomers GET /admin/customers?lastname={lastname}
GetCustomer GET /admin/customers/{username}
CreateRegistration POST /admin/customers/{username}/registrations
UpdateRegistration PATCH /admin/customers/{username}/registrations
GetCustomerRegistrations GET /admin/customers/{username}/registrations
GetRegistration GET /admin/customers/{username}/registrations/{vin}
CreateVehicle POST /admin/vehicles
GetVehicle GET /admin/vehicles/{vin}
GetVehicleRegistrations GET /admin/vehicles/{vin}/registrations

You can find an example OpenAPI definition for this API in the .Net Serverless variant of the solution:

https://github.com/johngrantham/aws-connectedcar-dotnet-serverless/blob/main/deployment/openapi/specifications/admin.openapi.yaml

You can also find a test collection for this API in the AWS common repository, which you can import into a Postman workspace:

https://github.com/johngrantham/aws-connectedcar-common/blob/main/postman/functional/admin.postman_collection.json

Customer API

The Customer API enables customer using a mobile app to book service appointments. Here is a table of the endpoints in this API:

Operation Action Path & Parameters
UpdateCustomer PATCH /customer/profile
GetCustomer GET /customer/profile
CreateAppointment POST /customer/appointments
GetAppointment GET /customer/appointments/{appointmentId}
DeleteAppointment DELETE /customer/appointments/{appointmentId}
GetRegistrations GET /customer/registrations
GetAppointments GET /customer/registrations/{vin}/appointments
GetVehicle GET /customer/vehicles/{vin}
GetEvents GET /customer/vehicles/{vin}/events
GetDealers GET /customer/dealers?stateCode={stateCode}
GetTimeslots GET /customer/dealers/{dealerId}/timeslots

You can find an example OpenAPI definition for this API in the .Net Serverless variant of the solution:

https://github.com/johngrantham/aws-connectedcar-dotnet-serverless/blob/main/deployment/openapi/specifications/customer.openapi.yaml

You can also find a test collection for this API in the AWS common repository, which you can import into a Postman workspace:

https://github.com/johngrantham/aws-connectedcar-common/blob/main/postman/functional/customer.postman_collection.json

Vehicle API

The Vehicle API enables in-car infotainment systems to submit information about error events. Here is a table of the endpoints in this API:

Operation Action Path
CreateEvent POST /vehicle/events
GetEvents GET /vehicle/events
GetEvent GET /vehicle/events/{timestamp}

You can find an example OpenAPI definition for this API in the .Net Serverless variant of the solution:

https://github.com/johngrantham/aws-connectedcar-dotnet-serverless/blob/main/deployment/openapi/specifications/vehicle.openapi.yaml

You can also find a test collection for this API in the AWS common repository, which you can import into a Postman workspace:

https://github.com/johngrantham/aws-connectedcar-common/blob/main/postman/functional/vehicle.postman_collection.json

Data Schemas

There's also a separate OpenAPI document containing the data schemas that are referenced by the three APIs outlined above. In the AWS variants of the solution, the document containing these schemas has to be appended to the OpenAPI documents for each of the three APIs during deployment.

You can find the OpenAPI definition for these schemas in the .Net Serverless variant of the solution:

https://github.com/johngrantham/aws-connectedcar-dotnet-serverless/blob/main/deployment/openapi/specifications/schemas.openapi.yaml