Describe how you build and structure an automation framework using TestNG and how you approach API testing methods.
Your answer should outline the framework layers, how TestNG lifecycle hooks support setup and teardown, and how reusable API clients, models, and utilities fit together. Also explain the main API testing methods you would include, such as positive, negative, schema, and data-driven checks.
def design_testng_api_framework(question):