Миграция кода для использования пакета npm forge-apis
Новый пакет (forge-apis) на самом деле немного проще в использовании и также миграция довольно простая.
С предыдущим необходимо было сделать что-то вроде этого, чтобы установить токен для использования:
- forgeDM.ApiClient.instance.authentications ['oauth2_access_code'].accessToken = tokenSession.getTokenInternal();
- // или
- forgeDM.ApiClient.instance.authentications ['oauth2_application'].accessToken = tokenSession.getTokenInternal();
С новым это не нужно.
Кроме того, теперь, вместо того, чтобы просто хранить токен доступа, проще хранить объекты аутентификации и учетных данных, которые используются в коде ниже:
- var forgeSDK = require('forge-apis');
- var authentication = new forgeSDK.AuthClientThreeLegged(client_id, client_secret, callbackURL, scope);
- authentication.getToken(code)
- .then(function (credentials) {
- storeCredentials(credentials);
- storeAuthentication(authentication);
- });
- // область доступа должна быть массивом значений областей доступа, которые вам нужны, например:
- // scope = ['data:read', 'data:write'];
Тогда вы можете сможете продолжать передавать эти два объекта всем другим API-вызовам, например:
- var projects = new forgeSDK.ProjectsApi();
- projects.getHubProjects(resourceId/*hub_id*/, {null}, authentication, credentials)
- .then(function (projects) {
- // сделать что-то
- });
При переносе вызовов функций, в большинстве случаев вы просто должны добавить три дополнительных вводных параметра:
options, authentication, credentials
- // старый вызов API
- var folders = new forgeDM.FoldersApi();
- folders.getFolderContents(projectId, folderId)
- // новый вызов API
- var folders = new forgeSDK.FoldersApi();
- folders.getFolderContents(projectId, folderId, {}, authentication, credentials)
Впрочем, не все новые функции имеют параметр для ввода опций, так что лучше проверить объявление функции, чтобы убедиться, содержит ли она параметр "opts".
Как вы можете видеть, перенести код не так сложно, так что ничто не мешает вам использовать последнюю версию пакета npm :)
Источник: https://forge.autodesk.com/blog/migrating-forge-apis-npm-package
Обсуждение: http://adn-cis.org/forum/index.php?topic=
Опубликовано 02.04.2017