@pal_lee
A FlowFile represents each object moving through the system and for each one, NiFi keeps track of a map of key/value pair attribute strings and its associated content of zero or more bytes. A FlowFile consist of two parts (FlowFile Attributes/Metadata and FlowFile content). NiFi overview.
I assume what you are really asking here is how to programmatically construct a NiFi dataflow via rest-api calls rather then drag and drop to the canvas via the NiFi UI.
Probably the easiest way to become familiar with how to do this is through the use of the developer tools available in your browser. Each request made while constructing a dataflow via the NiFi UI would be captured by the developer tools and you can right click on those calls to get the curl command that was actually executed against the ret-api endpoint to initiate that change on the canvas. These work as great examples for how to add components and establish connections between those components.
The NiFI rest-api docs are also a good source of reference but really do not cover down to the specific nuances of every component.
Hope this helps,
Matt