How do I limit a normalizer to a given class or interface?
You didn't explicitly state that your class is extending NormalizerBase, but I assume that's the case. My reply is based on that assumption.

If you look in the code for NormalizerBase, there are two spots where $supportedInterfaceOrClass is accessed, in supportsNormalization() and supportsDenormalization(). If you override supportsNormalization() as option #2 from the original post suggests, your normalizer will be restricted to nodes. However, it overrides the base method, bypassing a check to see if the given normalization format is even supported, which is not good. If someone were to try to normalize an unsupported format, the overridden method would incorrectly return TRUE. Therefore, it is better to set supportedInterfaceOrClass according option #1 from the original post, as that will also cover the denormalization option, as well as allow the base API to do its work.

Verdict: Do NOT use method #2. Do use method #1. I would implement __construct() and set the node class upon instantiation:

public function __construct() {
  this-&gt;supportedInterfaceOrClass = NodeInterface::class;
}