LINUX.ORG.RU

На чем написать простой rest API?

 , , , ,


0

4

Доброго времени, форум. Возникла необходимость создать тулинг для оптимизации работы некоторого персонала

Сам я frontend разработчик, о бэкенде знаю относительно немного. Основная логика приложения будет на клиенте, бэкенд нужен, чтобы писать в базу и иметь общий Стейт между устройствами

Также все усложняется тем, что в работе понадобятся данные, которые будут заноситься в xlsx.

Я планировал сделать так: Пользователь обновляет файл, он компилируется в JSON, далее записывается в БД с добавлением нескольких полей, ну и отдается на фронтенд через GET.

Подскажите, какими инструментами проще всего реализовать простенький бэкенд?

Linux тут при том, что сервер однозначно Linux.

Ответ на: комментарий от kardapoltsev

Да тоже подумываю. Express даже вроде как понимаю, но вот эти вот БД, orm… Очень непривычный синтаксис

Посмотрел набравший Nest js , показалось, что оверхед, но вдруг это имеет смысл?

KrasnoGlazik
() автор топика

бэкенд нужен

Так, закажите. Я так понимаю, приложение будет связано либо с коммерцией, либо это «по работе».

Подскажите, какими инструментами проще всего реализовать простенький бэкенд?

Проще всего бэкенд не реализовывать https://www.google.com/search?q=no+code+backend

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от vvn_black

Заказал бы, но бюрократия, увы

Также этот тулинг не является поставленной мне задачей. Это лишь попытка помочь коллегам с оптимизацией их работы

За ссылку спасибо, что-то над no code даже не думал

KrasnoGlazik
() автор топика
Последнее исправление: KrasnoGlazik (всего исправлений: 1)
Ответ на: комментарий от qulinxao3

Процесс примерно такой:

  1. Выгружается таблица из 1с, вставляется в xlsx

  2. Этот xlsx преобразуется в json и вставляется в базу данных, добавляя ещё пару полей

  3. По Get на фронт отдаются все поля

  4. По Post добавляются новый объекты, либо меняется одно из кастомных полей, либо очищается база

Вся остальная работа с сортировками и прочим реализуется на фронте

Такая глупая реализация через файл только потому, что доступа к конфигуратору нет, а апишки на эти данные отсутствуют

KrasnoGlazik
() автор топика
Последнее исправление: KrasnoGlazik (всего исправлений: 1)

Если нагрузка http будет небольшая, можно взять Flask/Bottle - всё очень и очень просто. Можно позже прикрутить логику и обработку на питоне-пандасе, например. Ну и эксели легко читать. Для местной автоматизации самое то. А вот если нагрузка http будет большая, единственный вариант - C (EPOLL и пр.)

Paka_RD
()

Также все усложняется тем, что в работе понадобятся данные, которые будут заноситься в xlsx.

Я планировал сделать так: Пользователь обновляет файл, он компилируется в JSON, далее записывается в БД с добавлением нескольких полей, ну и отдается на фронтенд через GET.

Проблема XY детектед. Скажи, что тебе нужно сделать с xlsx с точки зрения полтзовательского сценария, а мы тебе скажем, как это лучше будет сделать.

static_lab ★★★★★
()
Ответ на: комментарий от Paka_RD

А чтобы 2 раза не вставать. А какую БД целесообразно использовать в данном случае? Sqlite должно хватить? Или лучше подзапариться и вкорячить postgres/mongodb

KrasnoGlazik
() автор топика
Ответ на: комментарий от static_lab

Дано: отчёт в 1с где есть колонка с id документов, названием номенклатуры и количеством(которое, блин, записано в названии номенклатуры через запятую, блен). Полей чуть больше, но мне необходимы только эти.

Я хочу сделать приложение фронт, Аля обычной тудушки, где по клику будет проставляться поле done(которого нет в данном документе) в true

Как-то так

KrasnoGlazik
() автор топика
Последнее исправление: KrasnoGlazik (всего исправлений: 1)

Сейчас Вам каждый будет пытаться «продать» инструменты, с которыми привык работать. Значит ли это, что они именно Вам подходят? Вовсе нет 😊. Вы бы лучше обозначили, а на чем Вы в состоянии написать хоть что-то крупнее helloworld. А то ведь из 4-х известных букв слово «вечность» не сложишь, как ни старайся 😊.

Virtuos86 ★★★★★
()

sqlite нет ибо это не для мультиподключений (можно но не нужно)

mongodb оно конечно json - но исходное nosql

остаётся postgresql - (с опцией в nosql и прочий пыщь пыщь json)

буит ли 3ье звено?

вс> таки на каком этапе(и следовательно какая точка в пространство-времени континууме ) «добавляются поля-фраги»

фронт вопросов нет - ибо.

бэк не ингресс - орм вурм вурм - и поехал

qulinxao3
()
Ответ на: комментарий от qulinxao3

… mongodb оно конечно json - но исходное nosql. остаётся postgresql - (с опцией в nosql и прочий пыщь пыщь json)

Если до этого с базами не работал, то лучше начинать с mongodb - более практичная СУБД-шка для подобных приложений. Тем более, что там задействован Javascript.

vinvlad ★★
()
Ответ на: комментарий от lovesan

О JS на беке забудь как о страшном сне. Возьми ченить проверенное и легкое на подъем, типа ASP.NET MVC итд

Чем же ASP.NET MVC легче на подъём по сравнению с JS, и чем плох JS на микробекенде для фронтендера?

static_lab ★★★★★
()

Вэб головного моска((

Какая-то микро поделка засосать в скуль экзель и сразу конечно хрест во все поля. И пофиг что его главное назначение масштабируемость и кластеризация.

mrjaggers
()
Ответ на: комментарий от vinvlad

эээ

ибо mognodb для nodejs ( и в целом для js-сферы)

что pickle для python

способ долговременного (персист промеж пусков) существования данных

али какае монго преимущество ля js-жителей?

qulinxao3
()
Ответ на: комментарий от qulinxao3

… ибо mognodb для nodejs ( и в целом для js-сферы)

Это вы откуда такое выдумали? ) MongoDB - очень удобная документоориентированная СУБД-шка, с которой можно работать на любом языке, для которого имеется драйвер. Nodejs там задействован только в CLI-утилите mongosh, ну и в некоторых других клиентах для ручной работы с базой.

vinvlad ★★
()
Ответ на: комментарий от qulinxao3

тамо (грядёши) фсё jsonify is int it?

Внутренний формат хранения документов - BSON. Но какое это имеет отношение к Javascript и NodeJS?) На PHP, например, драйвер отдает документы в программный код в форме ассоциативных массивов.

Сама СУБД-шка написана, кстати, на C++.

vinvlad ★★
()
Последнее исправление: vinvlad (всего исправлений: 1)

Судя по описанию вам нужен простой, но быстрый диспетчер который получает HTTP запрос с файлом/данными, дергает назначенную в роутинге функцию обработки запроса (с чтением/записью в бд) и возвращает ответ.

Простой и при этом быстрый - Slim 4, но это на PHP. Если не знаете PHP то ищите аналог на языке который знаете.

Основная логика приложения будет на клиенте

Ну, главную ошибку вы уже совершили, теперь на бекенд хоть lisp, хуже для проекта уже не будет. Все равно потом выкидывать и переписывать с нуля.

Адекватный вариант примерно следующий:

У 1С есть Native API который позволяет писать свои внешние компоненты к 1С и под винду и под линукс хоть на С++, хоть на Go, Rust и тд. В итоге, клиентская часть это кнопка в 1С «Отправить данные», а серверная часть это Slim 4 c БД.

Obezyan
()
Ответ на: комментарий от vinvlad

история по пружинной(винтовой) линии

пока структура не закаменела не реляционная (в старом речекряке сетевая(иерархия с обратными рёбрами)) удобней чем натягивание сока мозка на алгебру кортежей

qulinxao3
()
Ответ на: комментарий от qulinxao3

там нет 1с

Дано: отчёт в 1с где есть колонка с id документов, названием номенклатуры и количеством

вс> таки «мало их» и «дАлеки от народа»

Когда хочется подколоть кого-нибудь, но из-за клипового мышления не хватает терпения прочитать остальные сообщения. Это печально.

Obezyan
()
Ответ на: комментарий от KrasnoGlazik

Увы, касаемо последнего пункта об адекватном решении - не решаемо. Я бы и сам на 1с быстро создал решение, будь у меня доступ

В таком случае берите любой фреймворк для создания HTTP API на том языке который вы знаете.

Obezyan
()
Ответ на: комментарий от qulinxao3

Читайте внимательно сообщение. Предложенный вариант с 1С - это на переписывание с нуля. Вы бы хоть вчитывались в сообщение которое критикуете.

Все равно потом выкидывать и переписывать с нуля. Адекватный вариант примерно следующий:…

Ну да ладно, я опять пытаюсь метать бисер.

Obezyan
()
Ответ на: комментарий от qulinxao3

идекаклически монга же клч-знач на спидах не?

Это слишком упрощенное представление о монге. Там имеется полноценный функционал индексирования коллекций по одному или нескольким полям и, соответственно, быстрая выборка подмножества документов из коллекции. Имеется возможность выбирать отдельные поля документов, а не документы целиком. Так что, в плане выборки документов из одной коллекции - те же возможности, что и при выборке записей из SQL-таблицы. Аналоги выполнения JOIN-запросов тоже поддерживаются, но уже совсем в другой форме.

vinvlad ★★
()
Ответ на: комментарий от Obezyan

попытайтесь увидеть в своём поведении проявление клиппового восприятия

всех благ метателю_бисера перед лицами которых он по причине (хз) попытался задеть ложной идентификацией тем самым обозначив себя хуже чем до.

qulinxao3
()