docs: generate README
This commit is contained in:
parent
872850da89
commit
3598f90619
201
README.md
201
README.md
@ -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 API’s development.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user