当我尝试使用DataType中的“用途”时,使用osprey-mock-service for RAML 1.0似乎遇到了问题。 RAML基于API Workbench并使用raml-cop有效。以下是我拥有的DataType的示例以及收到的错误消息。不知道我做错了什么还是模拟服务是否有问题。如果我在数据类型中不使用“ uses”,那么一切都会很好。
RAML:
#%RAML 1.0 DataType
uses:
StandardTypes: ../standard-types.raml
type: !include ../entity.raml
properties:
firstName: string
lastName: string
birthDate: string
phone: StandardTypes.Phone
错误:
TypeError: Cannot read property 'absolutePath' of null
at LowLevelWrapperForTypeSystem.children (C:\Users\greg.smith\AppData\Roaming\npm\node_modules\osprey-mock-service\node_modules\raml-1-parser\dist\parser\highLevelImpl.js:1011:75)
at parse (C:\Users\greg.smith\AppData\Roaming\npm\node_modules\osprey-mock-service\node_modules\raml-typesystem\dist\src\parse.js:784:18)
at AccumulatingRegistry.get (C:\Users\greg.smith\AppData\Roaming\npm\node_modules\osprey-mock-service\node_modules\raml-typesystem\dist\src\parse.js:257:30)
at C:\Users\greg.smith\AppData\Roaming\npm\node_modules\osprey-mock-service\node_modules\raml-typesystem\dist\src\parse.js:375:17
at Array.forEach (<anonymous>)
at Object.parseTypeCollection (C:\Users\greg.smith\AppData\Roaming\npm\node_modules\osprey-mock-service\node_modules\raml-typesystem\dist\src\parse.js:374:74)
at Object.parseFromAST (C:\Users\greg.smith\AppData\Roaming\npm\node_modules\osprey-mock-service\node_modules\raml-typesystem\dist\src\index.js:89:15)
at ASTNodeImpl.types (C:\Users\greg.smith\AppData\Roaming\npm\node_modules\osprey-mock-service\node_modules\raml-1-parser\dist\parser\highLevelImpl.js:1280:38)
at ASTNodeImpl.types (C:\Users\greg.smith\AppData\Roaming\npm\node_modules\osprey-mock-service\node_modules\raml-1-parser\dist\parser\highLevelImpl.js:1223:49)
at ASTNodeImpl.types (C:\Users\greg.smith\AppData\Roaming\npm\node_modules\osprey-mock-service\node_modules\raml-1-parser\dist\parser\highLevelImpl.js:1223:49)
答案 0 :(得分:0)
根据您发送的代码段和日志很难弄清楚是什么原因造成的。我尝试使用完全相同的DataType进行复制,创建了一个standard-types.raml
库,一个entity.raml
DataType,并将它们都放在一个较高的目录中,然后将您的DataType !include
{ }},将其传递给api.raml
,就可以了。