Body: <p>I'm troubleshooting an issue where some custom APIs (v3) via an extension are not recognized by the site, either in the API explorer or when attempting to run them via cv. The situation is puzzling:</p>
  
  <ul>
  <li>the extension has multiple APIs, some of which are recognized and working</li>
  <li>the working/non-working APIs are structurally identical (except for the different action value). in other words, the file location and functions have a matching structure (they use the same entity value).</li>
  <li>I tried creating some test APIs via civix directly on the server, and they are not recognized</li>
  <li>What's more confusing is that the APIs do show up when I install the extension on another site. So site A registers some of the APIs; site B registers all of them. Identical code, and nothing particularly odd about the server environments.</li>
  </ul>
  
  <p>I've checked the obvious -- cleared caches, etc. For some inexplicable reason, some APIs are recognized, others are not. Any suggestions on further troubleshooting?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-07-16T03:05:16.717Z
Comments.Text: Just in case you haven't checked this, the naming convention is picky, as per https://docs.civicrm.org/dev/en/latest/framework/api-architecture/#tips-for-writing-an-api. Does everything match up? As it says `If you have created the files and functions but they do not appear in API explorer, it is most likely because of a mis-match in your naming conventions.` It might not explain your last point about about using civix directly, but I don't have any other ideas at the moment.
Comments.UserDisplayName: Demerit
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-07-16T08:04:10.313Z
Comments.Text: As @Demerit says, check naming conventions, particularly the case of filenames and classes/functions in them.
Comments.UserDisplayName: Aidan
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-07-16T10:31:25.150Z
Comments.Text: Naming conventions are correct and identical to other APIs that are showing up.
Comments.UserDisplayName: lcdservices
Tags: <api>
Title: Custom API not recognized by explorer/cv
ThreadText: # Custom API not recognized by explorer/cv
  
  (Asked by: username_0 on 2019-07-16)
  
  I'm troubleshooting an issue where some custom APIs (v3) via an extension are not recognized by the site, either in the API explorer or when attempting to run them via cv. The situation is puzzling:
  
  * the extension has multiple APIs, some of which are recognized and working
  * the working/non-working APIs are structurally identical (except for the different action value). in other words, the file location and functions have a matching structure (they use the same entity value).
  * I tried creating some test APIs via civix directly on the server, and they are not recognized
  * What's more confusing is that the APIs do show up when I install the extension on another site. So site A registers some of the APIs; site B registers all of them. Identical code, and nothing particularly odd about the server environments.
  
  I've checked the obvious -- cleared caches, etc. For some inexplicable reason, some APIs are recognized, others are not. Any suggestions on further troubleshooting?
  
  **Tags:** api
  
  > **Comments:**
  > **username_1**: Just in case you haven't checked this, the naming convention is picky, as per https://docs.civicrm.org/dev/en/latest/framework/api-architecture/#tips-for-writing-an-api. Does everything match up? As it says `If you have created the files and functions but they do not appear in API explorer, it is most likely because of a mis-match in your naming conventions.` It might not explain your last point about about using civix directly, but I don't have any other ideas at the moment.  
  > **username_2**: As @username_1 says, check naming conventions, particularly the case of filenames and classes/functions in them.  
  > **username_0**: Naming conventions are correct and identical to other APIs that are showing up.  
  
  ---
  
  ## 0 answers
  
  