Your application is online book reading. Each book has a huge content and is arranged based on pages. Each page and content inside book is relevant.
When you talk w.r.t seo, from a crawler's perspective it would rank your book pages if it is able to read the book content properly and found it useful.
So lets try and solve both user-friendliness + seo problem, because both are important.
From seo : you get users, and acquiring users make sense if they find your content good + user-friendly. More they use your site has a positive impact on seo as well.
Approach i would suggest is have one url per book. But each page of this book is a separate web url to crawler, but in a paginated way + A single page book app for the reader
Sample Url would be:
http://www.example.com/books/book1/ -> This would be the main landing url of a book webpage.(essentially page1 of your book)
This would have a next/prev or direct go to a page option, which are essentially hyperlinks of type:
But on clicking above links, don't reload the page. Get the content from ajax and replace that in a main-container that contains the content of the pages. (You can prefetch few pages intelligently)
So it does not disturb the user behavior. Also it helps crawler to read and index the content systematically and it would be a strong boost to your main page book url.
Change the browser url by history.pushState
Send a virtual page view on google analytics
Make proper rel next/prev meta tags and make sure any url of type:
Paginated pages when opened directly :
http://www.example.com/books/book1/?page=2 as explained above if opened directly by a crawler/user should open the same page (one page for a book) with content of page 2.
On your backend you should capture this page number and send the content to front-end accrodingly and your page state should exactly match the state if a user starts from some other page and reach this via ajax. This would avoid any penalty for ajax loading + is a best practice for this use case.
More more on pagination seo best practices: