angularjs - 返回带有markdown格式的API响应的设计不好吗?

标签 angularjs grails markdown

我正在使用服务器上的Grails和客户端上的Angular构建SPA。

举一个简单的例子,假设有一个注册表单,该表单在将错误消息发送回用户之前先经过服务器端验证。目前,我正在Grails内置的i18n支持中,通过向message.properties中添加新的消息代码,如下所示:
user.phone.error=[{2}] is not a valid phone number
我想为用户设置信息样式,因此我使用以下帮助函数将其替换为<strong/>:

utils.formatMessage = function(message, args) {
    return message.replace(/\[{(\d+)\}\]/g, function(_, idx) {
      var msg += '<strong>';
      msg += args[idx];
      msg += '</strong>';
      return msg;
    });
  };

这足够好,但是如果我想用<strong/>包裹某些文本,而用<em/>包裹另一部分怎么办?

可以向我的messages.properties添加另一个表示法,例如[[{0}]],但这似乎不是一个好的长期解决方案...

如果相反,我利用Markdown来包装我的API响应:
(**{2}** is not a valid phone number),然后使用客户端库(例如ShowdownAngular Markdown Directive(使用Showdown))来解析响应?

一方面,似乎很容易将API响应与表示层分离开来,但另一方面,我不认为Markdown会很快发展到任何地方,并且正如StackOverflow所证明的那样,它是如此简单。

当然,我会将用法限制为Emphasis(<em/><strong/>),而其他所有格式( header ,链接,列表等)的选择都应由客户自行决定。

我要把自己打滑吗?

最佳答案

我认为这不是最好的主意。 Java语言基本上是JSON,因此,当您从API返回JSON时,可以轻松地在客户端上对其进行解析。而且,您还可以轻松连接其他语言的其他客户端。当然,您也可以使用Markdown做到这一点,但是如果您需要在javascript中使用此api,它并不是api响应的最佳解决方案。 JSON被广泛用于api响应,我只能向您推荐。

关于angularjs - 返回带有markdown格式的API响应的设计不好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30040879/

相关文章:

html - 是否可以使用 GitHub Flavored Markdown 创建带有 'target=“_blank” ' 的链接?

AngularJS/CORS OPTIONS 请求和性能

javascript - 使用 reangular 计算冗余

grails - 保持从 Grails 域到数据库的列顺序

grails - Grails域名查询列表

facebook-graph-api - Facebook Graph API帖子错误地显示了一些消息字符

ios - xcode 和 ios 10.3 中出现 "WebFrame has been modified too many times, aborting "错误

javascript - 如何从 Wijmo 过滤 Flexgrid 中的日期

python - 自定义 Markdown 解析

azure - 有没有办法在 azure devops 仪表板的 markdown 中显示最后的构建 ID?