Как правильно сделать namespace для BX.ajax.runAction?
evsyukov:main - вместо этого должно быть название модуля. По соглашениям битрикса самописные модули должны состоять из двух слов разделенных точкой, например evsyukov.testmodules, где первая часть - это условно говоря PARTNER_NAME, а вторая название модуля

Тогда вызов будет выглядеть так:
BX.ajax.runAction('evsyukov:testmodules.api.book.addbook', {});

В этом методе, надо конфигурировать свои экшены, чтобы твой экшен срабатывал в публичке для всех пользователей надо написать так
public function configureActions()
{
	return [
		'addBook' => [
			'prefilters' => [

			],
			'-prefilters' => [
				\Bitrix\Main\Engine\ActionFilter\Authentication::class
			],
		]
	];
}
Решение в комментариях