struct Endpoint
- Endpoint
- Struct
- Value
- Object
Included Modules
- JSON::Serializable
- YAML::Serializable
Defined in:
models/endpoint.crConstant Summary
-
MOBILE_PROTOCOLS =
Set {"mobile-scheme", "android-intent", "universal-link", "android-provider"} -
Non-HTTP mobile deep-link protocols. These endpoints are app URLs you open (myapp://, intent://, verified https app links) or ContentResolver surfaces you address (content://authority), not HTTP requests you send — so they are excluded from HTTP-shaped output (curl/httpie/powershell, OpenAPI) and from active probing / proxy delivery.
Constructors
- .new(url : String, method : String, details : Details)
- .new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
- .new(url : String, method : String, params : Array(Param) = [] of Param, details : Details = Details.new, internal : Bool = false)
- .new(pull : JSON::PullParser)
Instance Method Summary
- #==(other : Endpoint) : Bool
-
#add_tag(tag : Tag)
Dedup by (name, tagger) like push_callee/push_param do for their collections, so re-tagging the same target (e.g.
- #ai_context : AIContext | Nil
- #ai_context=(ai_context : AIContext | Nil)
- #callees : Array(Callee)
- #callees=(callees : Array(Callee))
- #details : Details
- #details=(details : Details)
- #details=(details : Details)
- #internal : Bool
- #internal=(internal : Bool)
- #internal=(internal : Bool)
- #kind : String
- #kind=(kind : String)
-
#metadata : Hash(String, String) | Nil
Free-form metadata for non-HTTP entry points (mobile deep-link schemes, Android intents, universal links: action/category/host/ package/...).
-
#metadata=(metadata : Hash(String, String) | Nil)
Free-form metadata for non-HTTP entry points (mobile deep-link schemes, Android intents, universal links: action/category/host/ package/...).
- #method : String
- #method=(method : String)
- #mobile? : Bool
- #params : Array(Param)
- #params=(params : Array(Param))
- #params_to_hash
- #protocol : String
- #protocol=(protocol : String)
- #protocol=(protocol : String)
-
#push_callee(callee : Callee)
Add a callee, deduping by (name, path) and enforcing the
Callee::MAX_PER_ENDPOINTcap. -
#push_param(param : Param)
Dedup by (name, param_type) like push_callee/add_tag do for their collections.
- #tags : Array(Tag)
- #tags=(tags : Array(Tag))
- #url : String
- #url=(url : String)
Constructor Detail
Instance Method Detail
Dedup by (name, tagger) like push_callee/push_param do for their collections, so re-tagging the same target (e.g. a match in two code_paths) can't surface a duplicate "auth auth" in the text output.
Free-form metadata for non-HTTP entry points (mobile deep-link schemes, Android intents, universal links: action/category/host/ package/...). nil for ordinary endpoints and suppressed from serialization so the JSON/YAML schema is unchanged for them.
Free-form metadata for non-HTTP entry points (mobile deep-link schemes, Android intents, universal links: action/category/host/ package/...). nil for ordinary endpoints and suppressed from serialization so the JSON/YAML schema is unchanged for them.
Add a callee, deduping by (name, path) and enforcing the
Callee::MAX_PER_ENDPOINT cap. Both checks are kept here so
individual analyzers can't forget them and let the list balloon.
Dedup by (name, param_type) like push_callee/add_tag do for their
collections. A handler that reads the same input twice
(params[:id] on two lines, a path param re-read in the body) used
to surface the identical Param multiple times in the raw #params
list and the text output. #params_to_hash/#== already collapse on
name+type, so deduping here only trims redundant entries.