#node.js #api #express
Вопрос:
Я создаю API с node и express, который может шифровать и расшифровывать сообщения с помощью обычных шифров. В моем API стандартный путь «формат» — это /lt;шифрование/расшифровкаgt;/lt;шифрование/расшифровкаgt;lt;ключиgt;. В настоящее время я не уверен, как лучше всего использовать несколько «ключевых значений», поскольку некоторые шифры могут принимать более одного значения ключа для шифрования.
const express = require("express"); const app = express(); const port = 3000; const checkInput = require("./input_validator"); //import affine cipher utilities const [affine, reverseAffine, affineKeyValidator] = require("./ciphers/affine"); app.get("/affine/encrypt/:string/:key", (req, res) =gt; { if (checkInput(req.params.string)) { let key = JSON.parse("[" req.params.key "]"); if (affineKeyValidator(key[0])) { res.send({ text: affine(req.params.string, key[0], key[1]) }); } } }); app.listen(port, () =gt; { console.log(`Server running on http://localhost:${port}`); });
выше приведена моя текущая реализация. Примером пути может быть /аффинный/шифрование/hiddenmessage/1,25, который технически работает нормально, но я чувствую, что это не лучший способ реализовать то, что я ищу. Есть ли более эффективный способ для этого?
Комментарии:
1. Почему бы не создать
POST
маршрут со всеми ключами в теле запроса?
Ответ №1:
Значения для этого формата могут быть отправлены QueryParams
. Вы используете обычный express.js таким образом, когда вы отправляете данные с интерфейса/клиента, вы можете добавить эти данные в параметры HTTP-запроса, а затем их можно получить с помощью:
const query = req.query;// query = {key:"abc", value: "123"}