问题标签 [suave]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
f# - 如何使用现有的记录类型创建新的记录类型?
我正在尝试Todo
使用 Suave 创建一个简单的 REST API。Todo
类型定义为:
这种类型在使用Get By IdGET /todos/{guid}
和Get ListGET /todos/
API 时非常有效。但是在创建新Todo
项目时,有效负载不包含id
属性,因为它将作为数据库操作的一部分自动生成。因此,进行了以下 REST API 调用:
但是,问题是 JSON 反序列化中断,因为该id
字段不可用。如何处理这种情况?声明id
asoption
感觉不对,因为它不是正确的抽象。在 TypeScript 中,我可以使用 , 等实用程序类型Omit
来Pick
创建新类型,例如:
如何在 F# 中获得类似的结果?
.net-core - Suave.io 是否使用单线程处理请求?
我知道Suave.io
它是非阻塞的,但它是否使用像 Node.js 这样的单线程?它是否类似于此处解释的 Kestrel - Kestrel 是否使用单线程来处理 Node.js 之类的请求??
作为上下文,我正在尝试使用Suave
and为 GraphQL 构建数据加载器FSharp.Data.GraphQL
。要执行批处理和自动调度,我需要构建一个基于时钟的批处理队列。
rest - Suave with f# - 如何在 f# 聊天应用程序中有一个 rest api 和 websocket 端口?
我有一个 f# 聊天应用程序,该应用程序需要暴露其余 api 以及用于实时消息传递的 websockets。我正在使用 Suave 框架。
我有一个前端,它有一个“聊天”按钮,点击时运行 javascript。javascript 触发为 websocket url (/websocket) 创建一个 web socket,并为实时聊天建立连接。但是,我有另一个按钮“FetchUsers”用于获取系统中的所有用户。但为此,我需要一条不同的路径(/people)。我不认为我可以使用 (/websocket) 路径,因为在后端,只有一个函数可以为特定路径定义。
为了实现这一点,我提出了可以公开 2 个不同端口的想法:一个用于其余 api,一个用于 Web 套接字。我的 rest api (localhost:8082/people) 用于获取系统中的所有用户,而 web sockets (localhost:8080/websocket) 用于向系统中的所有用户发送聊天消息
对于如何实现聊天应用程序,我愿意接受任何其他建议。
程序.fs
宁静的.fs
如何将 websocket 分配到端口 8080 并将 api 分配到端口 8082?我现在正在这样做。服务器在端口上启动,但我只能访问其余的 url,即 localhost:8080/people
重申我之前的观点,我想知道关于如何实现聊天应用程序的任何其他方法。
f# - 使用 Suave 上传大文件?
我想使用 Suave 上传文件。我知道小文件会自动写入/tmp
文件夹,但我的文件太大了。我想做的是将它们作为流处理并通过 Suave 服务器将它们发送到长期存储。
这是我的服务器:
但是当我运行这个curl
命令时,它只是挂起:
我希望上传的文件能够逐行打印。
我在这里想念什么?
sql - Suave 是否包含用于数据库的工具?
在 Suave 中是否有访问数据库的内置方法?
f# - 带有 Suave 和 Fable.Remoting 的 MissingMethodException
这是一个可以重现该问题的最小示例。
尝试使用 Fable 客户端或只是导航到http://127.0.0.1:8080/ITestAPI/Test来访问该端点会导致服务器抛出未找到的方法:
我已经为此打了几天的头,没有任何进展。使用 .Net Core 3.1 和 .Net 5 都会发生同样的错误。
任何人都对可能导致这种情况的原因有任何见解?我没有看到有关 Fable.Remoting 或 Suave 的任何未解决问题,所以我不得不想象这是我做错了什么?
f# - 如何设置 Suave 以访问任何路由上的帖子消息,并绑定到“*”
我需要设置一个服务,该服务需要接受 POST 消息到该 IP 上的任何路由,并让 Web 服务器监听机器拥有的所有 IP
我可以很容易地制作一个本地 IP 列表,将 127.0.0.1 添加到其中进行测试。
如何在任何发布请求上设置回调,包括内容?我在 1 小时前才开始研究它,所以答案可能很明显。
f# - Suave Web 服务器的表单数据不正确
我正在尝试从 AWS 的 SNS 系统接收确认。它通过 POST 向网络服务器发送一条消息,我正在使用 Suave 接收它。
当我收到消息时,表单字段被截断,我收到:
所以这是一个未完成的json...
但是当我查看rawForm字段时,我得到了整个信息:
起初我以为输出被截断了,但后来我缩小了范围。发布这一行:
将失败并在第一个“=”符号处被截断。然后:
将导致 Suave 失败。当作为表单数据发送时,它不会被正确地转换为字符串。
是否有任何与编码等相关的设置可以防止这种情况发生?(因为我不能要求 AWS 逃避他们所有的 '=' 标志)
asynchronous - 在 F# 中的异步块中返回位置
我有以下代码:
它使用的是 Suave Web 服务器,两个路径(正常和错误)都返回WebPart类型的对象。
如果我尝试移动 return 语句来包装其他所有内容,我会得到以下代码:
try/with 块应该返回一个 WebPart 对象,我认为用一个返回来包装它会更好读。
编译器不同意:
[FS0750] 此构造只能在计算表达式中使用
我不明白为什么会这样。谁能给我解释一下?