Ссылка на готовый проект: https://github.com/Shrek4/learn.forge.viewmodels/tree/nodejs
В файлах готового проекта есть комментарии на русском.
Перед тем, как создавать приложение, вам необходимо зарегистрироваться на Forge. На forge.autodesk.com войдите в аккаунт и выберите бесплатный пробный период.
После этого на этом же сайте создайте приложение:
Укажите нужные вам API, название приложения и Callback URL “http://localhost:3000/api/forge/callback/oauth”.
Клонируйте репозиторий проекта или скачайте его.
Рекомендуется для открытия проекта использовать Visual Studio Code.
Перед запуском откройте консоль через Ctrl+ё и введите следующие команды:
npm install
set FORGE_CLIENT_ID=*Ваш Client ID из созданного проекта*
set FORGE_CLIENT_SECRET=*Ваш Client Secret из созданного проекта*
npm start
Первая устанавливает пакеты в папку node_modules, вторая и третья устанавливают значения переменных среды, а последняя запускает сервер Node.js.
Откройте запущенный локальный сервер в браузере на http://localhost:3000/.
Приложение позволяет загружать 3д модели и просматривать их в браузере.
// Конфигурация Autodesk Forge
module.exports = {
// Здесь задаются переменные среды
credentials: {
client_id: process.env.FORGE_CLIENT_ID,
client_secret: process.env.FORGE_CLIENT_SECRET,
callback_url: process.env.FORGE_CALLBACK_URL
},
scopes: {
// Обязательные области для серверного приложения
internal: ['bucket:create', 'bucket:read', 'data:read', 'data:create', 'data:write'],
// Требуемая область видимости для программы просмотра на стороне клиента
public: ['viewables:read']
}
};
Это конфиг приложения. Он задаёт переменные среды.
const path = require('path');
const express = require('express');
const PORT = process.env.PORT || 3000;
const config = require('./config');
//Выводит ошибку, если айди и секрет не заданы
if (config.credentials.client_id == null || config.credentials.client_secret == null) {
console.error('Missing FORGE_CLIENT_ID or FORGE_CLIENT_SECRET env. variables.');
return;
}
let app = express();
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.json({ limit: '50mb' }));
app.use('/api/forge/oauth', require('./routes/oauth'));
app.use('/api/forge/oss', require('./routes/oss'));
app.use('/api/forge/modelderivative', require('./routes/modelderivative'));
app.use((err, req, res, next) => {
console.error(err);
res.status(err.statusCode).json(err);
});
app.listen(PORT, () => { console.log(`Server listening on port ${PORT}`); });
Этот файл запускает сервер Node.js если переменные заданы.
Папка с основными файлами приложения.
Здесь хранятся css-стили для приложения.
Это вёрстка приложения.
Здесь хранятся скрипты, которые отвечают за функционал и поведение приложения.
ForgeTree.js отвечает за левую часть с деревом файлов, а ForgeViewer.js отвечает за правую часть, где отображается модель.
Здесь лежат файлы, которые отправляют запросы сервисам Forge.
modelderivative.js отправляет запрос на перевод модели, а oauth.js и common/oauth.js проделывают аутентификацию, чтобы вы могли использовать сервисы Forge.
oss.js (OSS - Object Storage Service) нужен для хранения ваших файлов в облаке.
Вот вообщем-то и все файлы, достойные внимания. Надеюсь, вы разобрались и дальнейшее изучение Forge для вас станет проще.