Один из вариантов - сгенерировать документацию API из заголовка, используя, например, Doxygen. Очевидно, вы все равно отправите документы вместе с кодом.
Это дает вам два преимущества:
1) Вы не очень беспокоитесь о том, должно ли что-то быть "в документации" или просто "в комментариях в заголовке", потому что изменить одно так же просто, как и другое. Так что все идет в документации.
2) Пользователи с меньшей вероятностью начнут читать ваш заголовочный файл, потому что они могут быть достаточно уверены, что в документации есть все, что интересует. Но даже если они твердолобые «я не доверяю документам, я читаю код», они все равно видят все, что вы хотите, чтобы они увидели.
Недостаток автоматически генерируемых документов API заключается в том, что их поиск может стать кошмаром для поиска, поэтому IMO стоит приложить дополнительные усилия для написания действительно хорошей "вводной" документации. Это может или не может быть частью сгенерированных документов API, в зависимости от того, что вы предпочитаете. Для небольшого API, просто список всех функций в «логическом», а не в алфавитном или исходном порядке, описанный в соответствии с тем, что они для , а не с тем, что они делают, может значительно облегчить получение в API документы. Под «логическим» я подразумеваю сначала перечислить часто используемые функции в порядке, в котором их вызовет клиент, с альтернативами, которые «делают то же самое» (например, send и sendTo для сокетов), сгруппированными вместе. Затем перечислите редко используемые функции и, наконец, непонятные вещи для опытных пользователей и необычные варианты использования.
Одна из основных трудностей в подходе, который может быть ограничителем показа, состоит в том, что в зависимости от вашей организации у вас может быть команда разработчиков документации, и они могут не иметь возможности редактировать заголовок. В лучшем случае они копируют, редактируют то, что вы сделали, и вы вносите изменения и возвращаете их. В худшем случае вся идея останавливается, потому что «только команда документации должна писать документацию, ориентированную на клиента, и она должна быть в стандартном формате, и мы не можем сделать вывод Doxygen таким форматом».
Что касается «что еще следует учитывать» - вы уже сказали, что будете следовать рекомендациям, поэтому сложно добавить многое: -)