Design APIs with clear resources, contracts, versioning, errors, authentication expectations, and documentation. Practical work includes REST-style services and client code that handles failure well.