Angularjs Grails3对自定义API的Restful调用不起作用

Angularjs Grails3对自定义API的Restful调用不起作用,angularjs,grails3,Angularjs,Grails3,尝试对一个特殊的oracle pl/sql验证包进行自定义调用,该验证包的功能超出了自定义域级验证程序,但不会触发“firemyvalidations”。你可以看到我试过的一些东西被注释掉了。有人能发现我的问题吗?我将Grails3.2.6与angularjs rest配置文件一起使用 urlmappings.groovy package fytrnlt class UrlMappings { static mappings = { delete "/$contro

尝试对一个特殊的oracle pl/sql验证包进行自定义调用,该验证包的功能超出了自定义域级验证程序,但不会触发“firemyvalidations”。你可以看到我试过的一些东西被注释掉了。有人能发现我的问题吗?我将Grails3.2.6与angularjs rest配置文件一起使用

urlmappings.groovy

package fytrnlt

  class UrlMappings {




static mappings = {
        delete "/$controller/$id(.$format)?"(action:"delete")
        get "/$controller(.$format)?"(action:"index")
        get "/$controller/$id(.$format)?"(action:"show")
        post "/$controller(.$format)?"(action:"save")
        put "/$controller/$id(.$format)?"(action:"update")
        patch "/$controller/$id(.$format)?"(action:"patch")

        //"/fetchStvnatnData"(controller: 'FybkbraController', action: 'fetchStvnatn')

        "/events"(resources:"event")
        "/fytrnlts"(resources:"fytrnlt")
        //"/fytrnlts"(resources:"fytrnlt"){"/fytrnlts/myvalidations" (controller: "FytrnltController", action: "myvalidations", method: "POST")}
       // "/fytrnlts/myvalidations" (controller: 'FytrnltController', action: 'myvalidations', method: 'POST')
        "/firemyvalidations" (controller: 'FytrnltController', action: 'myvalidations', method: 'GET')
        "/spridens"(resources:"spriden")
       // "/fybkbras"(resources:"fybkbra")
        "/fybkbras"(resources:"fybkbra"){"/fetchStvnatnData" (controller: "FybkbraController", action: "fetchStvnatn", method: "GET")}
        "/fytbanks"(resources:"fytbank")
        "/fyrsigns"(resources:"fyrsign")

        "/"(view: '/index')
        "500"(view: '/error')
        "404"(view: '/notFound')
    }
}
FytrnltController.groovy

package fytrnlt


import grails.rest.*
import grails.converters.*
import fytrnlt.BannerService

class FytrnltController extends RestfulController {
    //def bannerService

    static responseFormats = ['json', 'xml']
    FytrnltController() {
        super(Fytrnlt)



    }

   def myvalidations(){

       //def String mresult = bannerService.dataValidation()

       def fytrnlt = Fytrnlt.get(4)
       def CheckResult = fytrnlt.bannerService.documentValidation(fytrnlt.checkpayeepidm, fytrnlt.benefiaryname, fytrnlt.id, fytrnlt.userid, 1, fytrnlt.version, fytrnlt.actnum, fytrnlt.actnumintmdry, fytrnlt.swift, fytrnlt.createdate, null)


       respond CheckResult, [excludes: ['class']]

       /*
       def fytrnlt = Fytrnlt.get(params.id)



       if (fytrnlt.validate()) {
       def CheckResult = fytrnlt.bannerService.documentValidation(fytrnlt.checkpayeepidm, fytrnlt.benefiaryname, fytrnlt.id, fytrnlt.userid, 1, fytrnlt.version, fytrnlt.actnum, fytrnlt.actnumintmdry, fytrnlt.swift, fytrnlt.createdate, null)

       return CheckResult

       } */


    }
}
通过邮递员点击端点返回404错误

Grails生成以下内容:

WARN --- [nio-8080-exec-2] o.s.web.servlet.PageNotFound : No mapping found for HTTP request with URI [/firemyvalidations] in DispatcherServlet with name 'grailsDispatcherServlet'

您不需要将控制器后缀添加到URL映射:

因此,您可以替换:

"/firemyvalidations" (controller: 'FytrnltController', action: 'myvalidations', method: 'GET')
与:

"/firemyvalidations" (controller: 'fytrnlt', action: 'myvalidations', method: 'GET')

您不需要将控制器后缀添加到URL映射:

因此,您可以替换:

"/firemyvalidations" (controller: 'FytrnltController', action: 'myvalidations', method: 'GET')
与:

"/firemyvalidations" (controller: 'fytrnlt', action: 'myvalidations', method: 'GET')

现在回到这里,我无法将数据库返回的api值呈现为json。它只返回一个没有值的空[]?如何将其推到视图中?我尝试了respond mresult、[format:JSON]和其他方法,但没有成功。在我看来,呈现JSON的最简单方法是让控制器操作返回一个映射,然后用JSON视图呈现它。检查views.grails.org现在回到这里,我无法将数据库返回的api值呈现为json。它只返回一个没有值的空[]?如何将其推到视图中?我尝试了respond mresult、[format:JSON]和其他方法,但没有成功。在我看来,呈现JSON的最简单方法是让控制器操作返回一个映射,然后用JSON视图呈现它。查看views.grails.org