基于 ASP.NET WebAPI 控制器生成 JS 客户端

2023-12-23

在使用 RESTful API 的现代 Web 项目中,我们经常看到像下面这样的 AJAX 调用散布在我们的 JavaScript 文件中。

$.ajax({
    type: "POST",
    url: myapp.baseUrl + 'Api/Note',
    data: ko.mapping.toJSON(note),
    contentType: 'application/json',
}).done(function (response) {
    // do something
}).fail(function (jqxhr) {
    // do something else
});

我喜欢 WebAPI,我喜欢 Knockout,我喜欢将两者结合在一起。然而,这些 AJAX 调用非常冗长,并且包含我并不真正感兴趣的各种细节。因此,我围绕这些方法创建了一个包装器:

myapp.api.saveNote(note)

然而,这仍然需要我实际编写一个包含 AJAX 调用的包装器。我想知道你是否真的可以生成这些包装器。本质上,我将为我的 Web API 生成一个基于 JS 的客户端,类似于 Java 和 .NET 如何生成基于 WSDL 的客户端。

  1. 这以前做过吗?
  2. 是否有其他方法可以将 ASP.NET WebAPI 和 JavaScript 结合在一起,而无需编写一堆 AJAX 样板代码?
  3. 换句话说,是否有基于服务器端接口(如 ASP.NET WebAPI)创建 JS 接口的框架?

我已经看过 amplifyJS 但这只能部分解决问题。我正在寻找一种解决方案,该解决方案实际上可以在我的解决方案中创建基于 WebAPI 控制器的界面。如果这不存在,我会开始修补自己。我已经有了一个想法WebAPIClientGenerator使用反射来迭代所有ApiController's.


Just found a project called: ProxyApi

ProxyApi是一个自动创建JavaScript代理的库 ASP.NET MVC 和 WebApi 控制器的对象。

GitHub: https://github.com/stevegreatrex/ProxyApi https://github.com/stevegreatrex/ProxyApi

Blog: http://blog.greatrexpectations.com/2012/11/06/proxyapi-automatic-javascript-proxies-for-webapi-and-mvc/ http://blog.greatrexpectations.com/2012/11/06/proxyapi-automatic-javascript-proxies-for-webapi-and-mvc/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于 ASP.NET WebAPI 控制器生成 JS 客户端 的相关文章

  • React 和 Leaflet 结合的好方法

    我正在开发一个将 React 和 Leaflet 结合起来的项目 但我必须说我在语义方面遇到了一些困难 由于大部分内容都是由 Leaflet 直接管理的 我不知道将 Leaflet 映射实例添加为 React 组件中的状态是否有意义 当涉及
  • 使用 vue.js 显示 json 结果

    您好 我尝试使用 vue js 显示 json 文件结果 目标是结果将显示在值上 这是我的代码 data return fetchData function var self this self http get api casetotal
  • Orchard 中最近博客文章的自定义视图

    我已经搜索并尝试了 2 天来更改主页上显示的 RecentBlogPosts 内容类型的视图 我想显示帖子的标题和短语 我设法找到一个显示每个帖子标题的视图 但我还没有弄清楚模型中其他部分的名称或如何提取文本 非常感谢您的帮助 using
  • 将授权放在服务层而不是Web API层

    我正在使用 NET Core Web API 构建 REST API 我的控制器只是将请求转发到服务层并返回结果 HttpPost nameof Create public async Task
  • .getDay() 奇怪的行为[重复]

    这个问题在这里已经有答案了 有一个例子 console log new Date 2013 02 24 getDay 24 gt 0 24 console log new Date 2013 02 25 getDay 25 gt 1 25
  • 如何保护 RESTful Web 服务的安全?

    我必须实施安全RESTful Web 服务 https www ibm com developerworks webservices library ws restful 我已经使用谷歌做了一些研究 但我陷入困境 Options TLS H
  • 当我的 ASP.NET MVC 应用程序中的模型为 null 时,EditorFor(..) 引发异常

    我有一个非常简单的 ASP NET MVC 视图 它有一个简单的string作为模型 eg model string 当我执行以下操作时 如果模型值为null 当用户第一次登陆此视图 页面 资源时发生 Value cannot be nul
  • 与玻璃钢战斗

    我读过有关 FRP 的内容 非常兴奋 它看起来很棒 因此您可以编写更多高级代码 并且一切都更加可组合 等等 然后我尝试用数百个 sloc 从纯 js 到 Bacon 重写我自己的小游戏 我发现 我实际上不是编写高级纯逻辑代码 而是击败了 B
  • JavaScript 中的自定义“确认”对话框?

    我一直在开发一个使用自定义 模式对话框 的 ASP net 项目 我在这里使用吓人引号 因为我知道 模式对话框 只是我的 html 文档中的一个 div 它被设置为出现在文档其余部分的 顶部 而不是真正意义上的模式对话框 在网站的许多部分
  • 如何为 chrome 和 ie favicon(加载指示器)设置动画

    我的 PM 有一个要求 将图标更改为动画加载图像 仅当我将 link href 指向 gif 文件时 它才适用于 Firefox 我做了一些研究 发现 chrome 不支持动画图标 但wiki https en wikipedia org
  • 如何在 ES6 类中使用静态变量?

    我正在尝试在 es6 中使用静态变量 我想声明一个静态变量count in Animal类并增加它 但是 我无法通过声明静态变量static count 0 所以我尝试了另一种方法 class Animal constructor this
  • Google Apps 脚本:如何水平对齐 inlineImage

    我有以下代码 它是一个更大程序的一部分 我正在尝试将图像从我的 Google 驱动器插入到 Google 文档中 并调整其大小并居中 到目前为止 我能够让程序插入图像并调整其大小 但我不知道如何使 inlineImage 居中 我是使用谷歌
  • 如何在 Android 设备(平板电脑和手机)方向更改时获得正确的窗口宽度

    我正在尝试使用 jquery 函数计算 Android 设备方向变化时的窗口宽度 window outerWidth true 此计算给出了两个方向变化的正确宽度iphone and ipad但在安卓中不行 如果我最初以横向模式或纵向模式加
  • 已安装 cypress npm 软件包,但缺少 Cypress 二进制文件

    大家好 我是 azure devops CI 的新手 我正在尝试通过在作业之间缓存 node modules 来减少管道构建时间 但我遇到了无法解决的错误 我正在使用 cypress 进行测试 这是我的天蓝色管道 Node js Build
  • 将回调函数与原型函数一起使用

    在执行回调时 我无法弄清楚如何传递对象方法而不是排序 通用原型 方法 function Client this name hello Client prototype apiCall function method params callb
  • 同步通用分析

    新的Universal Analytics重新引入了同步事件跟踪 https developers google com analytics devguides collection analyticsjs method reference
  • 使用 Java 进行 AES 加密并使用 Javascript 进行解密

    我正在制作一个需要基于 Java 的 AES 加密和基于 JavaScript 的解密的应用程序 我使用以下代码作为基本形式进行加密 public class AESencrp private static final String ALG
  • 图片 URL 正确,但图片未显示

    我在 GoDaddy 上有一个网站 所有权限均已正确设置并且图像确实存在 但是 当页面加载时 所选项目的图像不会显示 这是我的代码 imagepath spaimages currentSpaModel Name ToString png
  • jQuery 存储类型未定义

    我用了一个jQuery 存储 https ui5 sap com api jQuery sap storage存储数据 oStore jQuery sap storage jQuery sap storage Type local oSto
  • angular-cli:Karma-Webpack 因“没有此类文件或目录”而失败

    我从Tour of Heroes使用标准 Angular systemjs 现在我正在使用angular client它在开发 生产模式下运行顺利 但我无法测试任何东西ng test 以下内容会被吐出 不仅适用于test ts但也为了pol

随机推荐