"implementation" ed "api" sono fornite dal plugin "android", per cui se stai facendo un progetto con Spring per desktop/server allora non li potrai/dovrai usare.
Per rispondere alla tua domanda comunque, "api" è esattamente identico a "compile" (questo sì che fa parte di gradle "standard"), mentre "implementation" indica che una dipendenza è usata esclusivamente come dettaglio implementativo del progetto.
Cosa cambia? Supponi di avere 2 progetti: libreria-interna e applicazione. Se tu definisci libreria-interna come "api", allora significa che la libreria-interna viene esposta come parte delle API dell'applicazione (cioè sarà accessibile a chiunque possa accedere all'applicazione), ed un cambiamento alla libreria-interna. Viceversa "implementation" indica che la libreria-interna è usata esclusivamente come dettaglio implementativo dell'applicazione, e non sarà quindi accessibile a chi ha accesso all'applicazione.
In soldoni "api" ti serve solo se vuoi esporre una certa dipendenza agli sviluppatori che useranno il tuo prodotto (es: se sviluppi una libreria)