Hi all,
I’ve decided that it’s just not possible to do what I wanted to do. I wish the documentation was better, and that those who knew this system were more active on this forum. The best I can surmise is that endpoints written within a plugin are only accessible by that plugin. So there is simply no way to access an API endpoint within my plugin externally. Instead, I had to create a separate API endpoint in another location, following this guide: How to Create a Custom API Endpoint in Strapi.
I would like to be able to use DRY principles, but it’s not clear to me how to place the business logic in a place that can be shared by API endpoints in src/api/ and also by plugins in src/plugins/. So for now I have had to duplicate that logic.