Jedna tabela -> jeden kontroler

0

Mam tabelę FileAccess, która przechowuje uprawnienia do korzystania z plików przyznawane użytkownikom (ma kolumny FileId, UserId, AcessLevel). Który kontroler powinien odpowiadać za operacje CRUDowe na tej tabeli? FilesController czy FileAccessesController? I która ścieżka wygląda lepiej: fileAccesses/create czy files/{fileId}/grantAccessToUser?

2

IMO lepiej patrzeć na aplikację z punktu widzenia operacji biznesowej, jaką chcesz wykonać niż CRUDa. "Nadanie dostępu do pliku" jaśniej wyraża intencję niż "dodanie wpisu do tabeli dostępu do pliku". Tabele w bazie i CRUDy na nich są w takiej sytuacji szczegółem implementacji. A już w implementacji warto rozdzielić dostęp do plików i zarządzanie uprawnieniami do osobnych serwisów.

0

Zadna, poczytaj o REST i zamodeluj to porzadnie, chyba ze wlasnie planowales robic "RPC over HTTP"

0

Czyli jeśli chcę mieć API RESTowe, to powinienem mieć endpoint POST api/files/accesses? A jaki byłby odpowiednik endpointu GET api/users/checkUserNameAvailability w REST?

2

1) OK
2) Robisz GET na api/users/<username>. Jesli taki uzytkownik istnieje, znaczy dostajesz odpowiedz, to znaczy ze username jest zajety. Jesli dostajesz 404, znaczy ze wolny. (zakladamy ze username jest unikalny i moze pelnic role identyfikatora)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0