You have coded your tool as a pass-through tool, but you have configured it as an input tool because you did not provide any input connection. In NasaConfig.xml, I changed the GuiSettings tag to look like this:
In line 84 I changed the way the at variable is calculated. I just assumed a string input field, so no need to do the date time conversions. This is kind of lazy, so your way is probably better. I couldn't get the date-time formatting to work quickly, so I went with something simple just to get the tool working:
at = self.DateField.get_as_string(in_record)
Finally, in line 90 I had to make sure I was setting the json field from the 'text' property of the response, not the response itself:
The first bullet point about the config file was the most critical; the rest are simple syntax errors. If you want to create a pass-through tool (which uses the IncomingInterface class) then you need to define at least 1 incoming connection. If you want to create an input tool (which has 0 incoming connections), then all of the record processing has to happen in pi_push_all_records.
Always happy to help someone interested in the SDKs!
Short answer to your question: no.
The docs do a good job of introducing the new SDKs (https://help.alteryx.com/developer-help/platform-sdk). I'd start there and ask questions in the Community. I have played with the new SDK a bit, but am not too familiar with it. It's not because there is anything wrong with the new SDK. I actually quite like the new APIs. It's mainly because I created my own SDK for the Go programming language (I modelled the design after the platform SDK). I much prefer coding with Go rather than Python, so most of my custom tools now are Go-built tools.