docs: generate README

This commit is contained in:
john 2025-11-24 17:02:30 -07:00
parent 872850da89
commit 3598f90619

201
README.md
View File

@ -1,2 +1,201 @@
# identity-management
# Identity Management API
A high-level overview of a RESTful API for managing individual customers, their online accounts, and authenticated sessions. The API follows the JSON:API specification (`application/vnd.api+json`) for all request and response payloads.
---
## Base URL
```
http://localhost:8080/v1
```
---
## Resources Overview
| Resource | Description |
| ------------------------ | ----------------------------------------------------- |
| `/individualCustomers` | Manage individual customer records |
| `/onlineAccounts` | Manage online account credentials and associations |
| `/authenticatedSessions` | Create and manage authenticated sessions for accounts |
---
## Content-Type Requirements
All **POST** and **PATCH** requests must include:
```
Content-Type: application/vnd.api+json
```
---
# Individual Customers
Operations under `/individualCustomers` allow clients to create, retrieve, update, and delete customer profiles.
## Create Individual Customer
**POST** `/individualCustomers`
Example request:
```json
{
"data": {
"type": "individualCustomer",
"attributes": {
"firstName": "Jane",
"lastName": "Smith",
"emailAddress": "jane.smith@example.com"
}
}
}
```
## Retrieve Customer
**GET** `/individualCustomers/{customerId}`
Example response:
```json
{
"data": {
"type": "individualCustomer",
"id": "12345",
"attributes": {
"firstName": "Jane",
"lastName": "Smith",
"emailAddress": "jane.smith@example.com"
}
}
}
```
## Update Customer
**PATCH** `/individualCustomers/{customerId}`
Example request:
```json
{
"data": {
"type": "individualCustomer",
"id": "12345",
"attributes": {
"emailAddress": "new.email@example.com"
}
}
}
```
## Delete Customer
**DELETE** `/individualCustomers/{customerId}`
---
# Online Accounts
Represents login-capable accounts tied to customers.
## Create Online Account
**POST** `/onlineAccounts`
Example request:
```json
{
"data": {
"type": "onlineAccount",
"attributes": {
"username": "jsmith",
"password": "MyPassword123"
},
"relationships": {
"individualCustomer": {
"data": { "type": "individualCustomer", "id": "12345" }
}
}
}
}
```
## Retrieve Online Account
**GET** `/onlineAccounts/{accountId}`
## Update Online Account Credentials
**PATCH** `/onlineAccounts/{accountId}`
Example:
```json
{
"data": {
"type": "onlineAccount",
"id": "acct-789",
"attributes": {
"password": "NewSecurePassword456"
}
}
}
```
---
# Authenticated Sessions
Used to authenticate an online account and generate a session token.
## Create Authenticated Session
**POST** `/authenticatedSessions`
Example request:
```json
{
"data": {
"type": "authenticatedSession",
"attributes": {
"username": "jsmith",
"password": "MyPassword123"
}
}
}
```
Example response:
```json
{
"data": {
"type": "authenticatedSession",
"id": "session-001",
"attributes": {
"issuedAt": "2025-01-01T12:00:00Z",
"expiresAt": "2025-01-01T14:00:00Z",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
}
```
---
# License
Specify license information here.
---
# Acknowledgments
Document inspirations, contributors, or tools used in the APIs development.