Dotnetnuke 如何从外部非DNN网站访问2sxc API

Dotnetnuke 如何从外部非DNN网站访问2sxc API,dotnetnuke,2sxc,dnn9,Dotnetnuke,2sxc,Dnn9,我正在尝试使用postman访问2sxc api,但由于某些原因无法正常工作 $2sxc(moduleContext) .webApi.get('app/auto/api/List/persons') 我正在使用[Domain]/DesktopModules/api/2sxc/counterApp/List/persons 但我有一个404错误 使用$2sxc确实有效。但是我想从一个非DNN的网站上打电话。代码:您是在内容应用程序中还是在自己的自定义应用程序中 如果您在内容应用程序

我正在尝试使用postman访问2sxc api,但由于某些原因无法正常工作

$2sxc(moduleContext)
      .webApi.get('app/auto/api/List/persons')
我正在使用[Domain]/DesktopModules/api/2sxc/counterApp/List/persons

但我有一个404错误


使用$2sxc确实有效。但是我想从一个非DNN的网站上打电话。代码:

您是在内容应用程序中还是在自己的自定义应用程序中

如果您在内容应用程序中,则存在automagic路径

https://example.com/DesktopModules/2sxc/api/app/content/content/Person
|------------------ root -------------------|- app/id --|-part--|--type
上面的代码不需要编写代码(控制器)就可以工作

如果您在自己的自定义应用程序中,那么您将编写自己的自定义控制器。你可以在这里读到。在下面的假示例中,它位于Portals/0/2sxc/myapp/api/PublicController.cs中

https://example.com/api/2sxc/app/myapp/api/public/persons
|------------------ root ----|-app/id--|-controller|-function

你必须理解三种魔法

  • 您是否只需要任何包含REST(全部获取、1、更新、删除)、自定义查询或自定义处理代码的内容
  • 正确的道路
  • 权限
  • 一般来说,所有使用$2sxc的示例也可以从外部使用,但是您必须修改URL(因为自动检测不起作用),并且必须设置权限

    对于URL路径,您可以使用与$2sxc调用相同的路径(检查F12 JS控制台),但将应用程序名称替换为
    auto
    ,因为auto在DNN之外不起作用

    对于权限,必须在内容类型级别(内容类型一侧的个人图标)添加权限


    好消息顺便说一句:2sxc 11.08或11.09将在管理UI中为这个用例内置很多指导:)

    感谢您花时间解释,我将兴奋地等待