Sì, puoi; non c'è nulla su HTTP che impone una particolare struttura API. Tuttavia, ti suggerirei di riflettere sull'argomento.
La modellazione dell'API riguarda solo la comprensione del modello di dominio; dipende dalla relazione tra business
e user
e il significato relativo di queste entità.
Ecco i miei pensieri riguardo alle tue opzioni principali; Non posso rispondere a questa domanda per te, ma speriamo che questo ti aiuti ad affrontare il problema nel modo giusto.
Uno-a-molti
- Un'azienda può contenere molti utenti
- Un utente può essere collegato a una sola attività
Se gli utenti sono trattati come proprietà o componenti di un'azienda, rendi gli utenti un oggetto figlio dell'azienda.
POST /businesses/123/users
{"firstName": "John", "lastName": "Smith"}
Se gli utenti vengono visualizzati come entità distinte che sono solo collegate a un'attività commerciale, devi semplicemente collegare l'utente all'azienda.
POST /users
{ "user": {"firstName": "John", "lastName": "Smith"}, "business": 123 }
molti-a-molti
- Un'azienda può contenere molti utenti
- Un utente può essere collegato a molte aziende
Potresti rendere il collegamento alle attività commerciali una proprietà dell'utente.
POST /users
{ "user": {"firstName": "John", "lastName": "Smith"}, "businesses": [123, 789] }
Oppure, se il link a un'azienda ha un significato sostanziale per il tuo modello di dominio, potresti creare un'entità completamente nuova che rappresenti un impiego.
POST /users
{ "user": {"firstName": "John", "lastName": "Smith"} }
POST /employment
{ "user": 345, "business": 123, "commenced": "2016-09-01", "terminated": false }