function parseAlicloudAPI()

in src/plugins/parser.ts [129:184]


function parseAlicloudAPI(apiName: string, api: any, style = "RPC", meta: SimpleMeta): PontSpec.PontAPI | null {
  if (!api) {
    return null;
  }

  const { summary, description, consumes, deprecated, methods, path, parameters, responses, ext, ...rest } = api;
  const newParameters = (parameters || []).map(parseParameter).filter((param) => {
    if (style === "RPC") {
      if (
        ["Action", "OwnerId", "ResourceOwnerAccount", "ResourceOwnerId", "OwnerAccount", "AccessKeyId"].includes(
          param?.name,
        )
      ) {
        return false;
      }

      // if (param?.position === 'Host' && !hostEnable) {
      //   return false;
      // }

      if (["Domain", "System"].includes(param?.in)) {
        return false;
      }

      return true;
    }
    return true;
  });

  const desc = parseDescription(description || summary, meta);
  const apiLink = `https://api.aliyun.com/api/${meta.popcode}/${meta.version}/${apiName}`;

  return {
    consumes,
    summary,
    description: desc,
    deprecated,
    title: (api as any).title || summary,
    name: apiName,
    method: methods?.[0],
    methods: methods,
    path,
    parameters: _.unionBy<PontSpec.Parameter>(newParameters, "name"),
    responses: parseResponses(responses, meta),
    externalDocs: {
      description: I18N.plugins.parser.gotoDebug,
      url: apiLink,
    },
    ext: {
      summary,
      methods,
      ...rest,
      ...ext,
    },
  } as PontSpec.PontAPI;
}