Use hexadecimal text or plain blob (nat8 array) as parameter?

i have a map of sha256 blob as key and object as value, should the endpoint to query this map accept Blob as parameter
public shared query func get_object(hashkey: Blob)

…or Hexadecimal text as parameter?
public shared query func get_object(hexkey: Text)
if this one, what’s a good representation of hexadecimal text should i follow? should it start with 0x? or should i just let a library to handle it? if so, which is the best library/module?

when should i pick one over another?