api as dsl