{
  "repo": "tidbcloud/devtier-store-service",
  "binary": "ipip",
  "binary_path": "ipip/main.go",
  "surface_kind": "http_service",
  "type": "http_service",
  "extensions": {
    "notes": [
      "Fresh codex rescan kept ipip as a small single-route Gin service, but added its startup file loading path. Runtime exposure is limited to GET /ip/:ip; there is no separate metrics or health listener."
    ]
  },
  "services": [
    {
      "name": "IPIPLifecycle",
      "package": "ipip",
      "methods": [
        {
          "name": "InitIPDB",
          "name_key": "IPIPLifecycle.InitIPDB",
          "input": "ipip_cn_updated.ipdb file",
          "output": "loaded and reloaded IP city database",
          "type": "local"
        },
        {
          "name": "StartHTTPServer",
          "name_key": "IPIPLifecycle.StartHTTPServer",
          "input": "Gin engine",
          "output": "default Gin listener started",
          "type": "local"
        }
      ]
    },
    {
      "name": "IPIPHTTP",
      "package": "ipip",
      "methods": [
        {
          "name": "LookupIP",
          "name_key": "IPIPHTTP.LookupIP",
          "input": "ip path param",
          "output": "IP location info or error payload",
          "type": "http",
          "http_method": "GET",
          "http_path": "/ip/:ip"
        }
      ]
    }
  ]
}
