Boa tarde a todos.
Entenda que um Framework é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica.
Já uma API é um conjunto específico de normas e especificações que um programa de software pode seguir para acessar e fazer uso dos serviços e recursos fornecidos por um outro programa de software que implementa a API.
A função da API é apenas interagir a comunicação entre diversos sofwares, enquanto que o Framework fornece uma interface gráfica para interagir com usuário e utiliza a API para interagir este usuário com o Sistema Operacional.
Um belo exemplo está no próprio JAVA. onde o JVM (Java Virtual Machine) que cria uma camada de abstração dentro de cada sistema operacional específico, sendo esta abstração uma API que interpreta e executa os códigos java das bibliotecas AWT e SWING. e agora também disponìvel a biblioteca Nimbus que possui uma interface gráfica muito, mas muito agradável.
Todas estas bibliotecas AWT, Swing e Nimbus, formam um framework que interage com a API do JVM e esta com o sistema operacional
Frameworks disponíveis para web: Spring, Java Server Faces e muitos outros.
Cappichi