haskell 用于与API接口的HTTP透镜?

ktca8awb  于 2023-06-23  发布在  其他
关注(0)|答案(2)|浏览(93)

我刚刚开始使用Haskell,喜欢我每天遇到的抽象,比如lens
我已经到了一个点,REST API透镜将是有用的工作,但在我花了几个小时发现这是不可能的...是吗?
我看到的主要问题是我没有直接访问数据结构,而是输出一个请求的字符串(我的透镜语法可能是错误的):

λ> over (user "robertplant") . set favoritesong

POST http://...com/api/user/robertplant/favoritesong
{
  ...
}

----

λ> over (user "robertplant") . view _1

GET http://...com/api/user/robertplant/favoritesong/123

我假设这至少是一个应用问题,或者可能需要一个单子?
我的意思是,我可以想象这个透镜满足镜头定律(在某种意义上...这对我来说仍然有点模糊),但我还没有看到透镜具有输出字符串/其他数据结构的硬件。
这是一个值得追求的旅程吗?

k97glaaz

k97glaaz1#

不,很不幸,这和镜片没有任何关系。透镜是满足透镜定律的东西

view l (set l v s) ≡ v
set l (view l s) s ≡ s
set l v' (set l v s) ≡ set l v' s

你可能会在Haskell中编写一些聪明的东西来产生你正在寻找的输出,它只是不会与这个主题相关。

1mrurvl1

1mrurvl12#

如果你的API是幂等的,那么它满足透镜定律。

相关问题