Wow, @Robert Cemper ! Thank you as usual! 

But 3 lines. Could it be a one command by any chance? :)

I compete with the following:

/// Get JSON for a person with a given id

ClassMethod personsidGET(messageRequest As dc.Sample.v3rest.requests.personsidGET) As %Status

{

 Set person = ##class(dc.Sample.Person).%OpenId(messageRequest.pathid)

 set stream=##class(%Stream.TmpCharacter).%New() 

 d person.%JSONExportToStream(.stream)

 return stream

}

This works, but with an unnecessary "to stream, out of stream" exercise IMHO.

The example is in your article:

Class petstoreserver.impl Extends %REST.Impl [ ProcedureBlock ] { Parameter ExposeServerExceptions = 1; 
/// Service implemntation for post /pet 
ClassMethod addPet(messageRequest As petstoreserver.requests.addPet) As %Status
{ ; Implement your service here. 
  ; Return {} 
 $$$ThrowStatus($$$ERROR($$$NotImplemented)) 
    
} ... }

The declaration returns %Status.

The generated stub suggests return {} meaning the method should return json (which is true)

and below it throws status.

I think nothing can be fixed here :) Do we have any datatype to provide meaning that we expect the method to return JSON? %JSON? ))

But this discrepancy is quite confusing when you look at it for the first time.