It sounds like you’re on the right track as far as creating a custom post type. For the custom fields, you can either learn how to create your own plugin and create those yourself, or for a much easier experience, you could use a plugin such as Advanced Custom Fields that gives you a more WYSIWYG way to add the fields.
You’ll want to create your custom post type first, and make sure the URLs are looking the way you want them to. It can take some experimenting. You can do this in your own plugin – it’s fairly easy code, if you’re able to do a bit of PHP – rather than relying on the Custom Post Type UI plugin. Or just stick with the plugin if it’s more comfortable.
Then, with ACF (and you’ll probably need the paid Pro version but you could try the free one first), you’ll set up what they call a Field Group – you list out all your required fields, like author, editor, etc., etc., and you can choose what type of data to accept. For “date published” you could use a date picker. For “author” you could do a text field, or you could do a full WYSIWYG editor if you want to also be able to include the author’s photo, links to their website, etc. Then you identify where WP will display the entry fields – in your case, when Post Type equals “book”. You can also tell it to disable the regular editor so that when you edit a “book” post you will only see your custom fields.
Your last step will be exposing these fields in the REST API. No, these fields are not available by default, but if you do go with ACF there is a free plugin called ACF to REST API which will expose anything you create to the REST API as you need.
If you also want content to be viewable on the WordPress site itself – not just your non-WP intranet – you’ll also need to customize a theme to display all the extra info you add with ACF. It’s not shown by default as the theme only knows to look for standard WP content. This of course is not required if you’re only ever going to display content on the intranet.