バックエンドエンジニア技術試験
Built with

バックエンドエンジニア技術試験

言語、フレームワークは指定なし
【概要】
書籍管理アプリの API サーバ構築をしていただきます。
「書籍」には「ISBN」「書籍名」「出版日」の属性が存在する。
「書籍」には「出版社」「著者」が存在する。
「出版社」には「出版社 ID」「社名」の属性が存在する。
「著者」には「著者 ID」「人名」の属性が存在する。
【要件】
「著者」の CRUD API を実装してください。
「著者」詳細情報には紐づいている「書籍」も返却してください。
「著者」詳細情報には紐づいている「書籍」の出版社も返却してください。
「著者」削除時は紐づいている「書籍」も同時に削除してください。
「出版社」の CRUD API を実装してください。
「出版社」詳細情報には紐づいている「書籍」も返却してください。
「出版社」詳細情報には紐づいている「書籍」の著者も返却してください。
「出版社」削除時は紐づいている「書籍」も同時に削除してください。
「書籍」の CRUD API を実装してください。
「書籍」詳細情報には紐づいている「著者」「出版社」のサマリ情報も返却してください。
「書籍」削除時は紐づいている「著者」「出版社」を同時に削除してはなりません。
上記 API の動作を確認するテストコードを実装してください。
以下は「著者」のJSON サンプルです。
JSON
コピー
{ "authorId": 123, "name": "パゴス太郎", "books": [ { "isbn": "xxx-xxxx", "name": "絶対に儲かる100の方法", "publishedAt": "2022-09-04T16:07:48.53", "authorId": 123, "publisherId": 456 } ], "relatedPublishers": [ { "publisherId": 456, "name": "株式会社ガラパゴス" } ] }
以下は「出版社」のJSON サンプルです。
JSON
コピー
{ "publisherId": 456, "name": "株式会社ガラパゴス", "books": [ { "isbn": "xxx-xxxx", "name": "絶対に儲かる100の方法", "publishedAt": "2022-09-04T16:07:48.53", "authorId": 123, "publisherId": 456 } ], "relatedAuthors": [ { "authorId": 123, "name": "パゴス太郎" } ] }
以下は「書籍」の JSON サンプルです。
JSON
コピー
{ "isbn": "xxx-xxxx", "name": "絶対に儲かる100の方法", "publishedAt": "2022-09-04T16:07:48.53", "author": { "authorId": 123, "name": "パゴス太郎", }, "publisher": { "publisherId": 456, "name": "株式会社ガラパゴス", } }