Maybe you can post some more details, but from what I understand you are storing additional information per node on an external database. You already have developed an API system for communicating with that database, so you don't really need to issue queries from Drupal directly to that database. In that case, one way to proceed this would be the following.
Configure Views to use a display mode to render your entity. On your node preprocess function, issue the API request and fetch the additional data from the 2nd database. Prepare the data and make them available to the template.
/**
* Implements hook_preprocess_node(&$variables).
*/
function MY_THEME_preprocess_node(&$variables) {
// Issue API request.
// Process JSON response.
$variables['additional_field'] = $request_result;
}
You can then override the template for that entity (node) and display mode to render your additional fields.
If you need Views to use field display instead of rendering a display mode, you will need to develop a custom field handler that fetches the data from the external API. Let us know if you need help with that.
An alternative would be to use Views hooks to prepare the data in a similar way earlier in the process, but there's not really much of an advantage with that approach. That is, unless you have the capability to fetch all data for all results in a single API request. That would be the most efficient so that you don't issue multiple requests, one per node result. Let us know if this the case and if you need help with that.