--- title: "Descripción general" url: https://docs.catalyst.zoho.com/es/sdk/java/v1/overview/ description: "Esta página proporciona una descripción general del paquete Java SDK de Catalyst que te permitirá crear microservicios y aplicaciones web y móviles interactivas con elementos de programación Java." last_updated: 2026-08-17T12:16:04Z service: All Services type: general related_links: - name: "Catalyst Node.js SDK" url: /es/sdk/nodejs/v2/overview/ - name: "Catalyst Web SDK" url: /es/sdk/web/v4/overview/ - name: "API Code Reference" url: /es/api/code-reference/cloud-scale/authentication/add-new-user/#AddNewUser - name: "Catalyst Functions" url: /es/serverless/help/functions/introduction --- # Java SDK - Descripción general Java SDK para Catalyst facilita la creación de microservicios, aplicaciones web y móviles interactivas con elementos de programación Java, asociándolos con los componentes de Catalyst. El SDK ofrece las estructuras necesarias para acceder cómodamente a las APIs de Catalyst. Actúa como un wrapper para las APIs REST y te ayuda a utilizar los servicios de Catalyst de manera efectiva. Catalyst actualmente soporta las siguientes versiones de Java: * **Java 25** * **Java 21** * **Java 17** * **Java 11** * **Java 8** ### Inicializar proyecto Para inicializar un proyecto de Catalyst, agrega el siguiente fragmento de código a tu código fuente Java como la primera instrucción, antes de comenzar a escribir tu lógica de negocio. ```java ZCProject.initProject(); ``` > **Nota:** En Java SDK no es obligatorio incluir este comando de inicialización, ya que se inicializará automáticamente en Functions. #### Inicializar proyectos de Catalyst con scopes específicos del SDK Catalyst te permite inicializar un proyecto utilizando los siguientes scopes: * **Admin**: Tienes acceso sin restricciones a todos los componentes y sus respectivas funcionalidades. Por ejemplo, tienes acceso completo a Data Store para realizar todas las operaciones como lectura, escritura, eliminación, etc. * **User**: Puedes restringir el acceso a componentes y funcionalidades específicas. Por ejemplo, puedes proporcionar acceso de solo *lectura* a [Data Store](https://docs.catalyst.zoho.com/es/cloud-scale/help/data-store/introduction/). > **Nota:** * No es obligatorio inicializar los proyectos con scopes. De forma predeterminada, un proyecto inicializado tendrá privilegios de *Admin*. * Asegúrate de haber inicializado el SDK de Catalyst con el scope apropiado mientras desarrollas tu lógica de negocio. Los permisos que definas para tu scope controlan las acciones de tus usuarios finales. * Los scopes solo se aplican a las operaciones relacionadas con [Data Store](https://docs.catalyst.zoho.com/es/cloud-scale/help/data-store/introduction/), y [ZCQL](https://docs.catalyst.zoho.com/es/cloud-scale/help/zcql/introduction/). * Dependiendo de cómo desarrolles tu lógica de negocio, puedes decidir si tus usuarios finales pueden realizar acciones de *Admin* o *User*. Esto se determina en función del [rol](https://docs.catalyst.zoho.com/es/cloud-scale/help/authentication/user-management/roles/introduction/) asignado a tu usuario final cuando se registra en tu aplicación en Catalyst Authentication. Los permisos para los roles se pueden configurar en la sección *Scopes & Permissions* de [Data Store](https://docs.catalyst.zoho.com/es/cloud-scale/help/data-store/scopes-and-permissions/). Los siguientes fragmentos de código del SDK te permitirán inicializar el proyecto usando el scope *Admin* o *User*, y ejecutar una consulta **SELECT** en Data Store: * **Inicializar el proyecto de Catalyst con scope Admin** ```java ZCProject adminProject = ZCProject.initProject("admin", ZCUserScope.ADMIN); ZCQL.getInstance(adminProject).executeQuery("select * from test"); ``` * **Inicializar el proyecto de Catalyst con scope User** ```java ZCProject userProject = ZCProject.initProject("user", ZCUserScope.USER); ZCQL.getInstance().executeQuery("select * from test"); ``` ### Jerarquía de clases Todos los componentes de Catalyst están modelados como clases de Java, cuyos miembros y métodos definen el comportamiento del componente. * `ZCProject` es la clase base fundamental del paquete SDK. Tiene métodos para inicializar las configuraciones del proyecto de Catalyst y asociar los componentes del proyecto. * Las relaciones y la jerarquía de clases del SDK siguen la jerarquía del proyecto en Catalyst. * Cada clase tiene funciones para obtener sus propiedades y para obtener los datos de sus entidades hijas inmediatas a través de una llamada a la API. Por ejemplo, una clase de Data Store de Catalyst, `ZCDataStore`, tendrá funciones miembro para acceder a las tablas que pueden usar las funciones de su clase hija inmediata `ZCTable` para establecer el nombre de la tabla, el ID, etc. La jerarquía de clases de los distintos componentes de Catalyst se representa de la siguiente manera: ![flow_diagram](https://catalyst-docs-development.zohostratus.in/images/sdk/java/v1/flow_diagram.webp) ### Objetos de instancia No siempre es efectivo seguir toda la jerarquía de clases desde la parte superior para obtener los datos de un componente en un nivel inferior, ya que esto implicaría llamadas a la API en cada nivel. Para evitar esto, cada clase de componente tiene un método `getInstance()` para obtener su objeto ficticio y métodos para obtener objetos ficticios de sus entidades hijas. > **Nota:** Los métodos `getInstance()` no tendrán ninguna de sus propiedades completadas, ya que no se realizará ninguna llamada a la API. Solo devolverán un objeto ficticio que se utilizará únicamente para acceder a los métodos no estáticos de la clase. Para obtener las propiedades de un componente de Catalyst, llama al objeto del componente con su método `getInstance()`, y luego usa el mismo objeto para llamar a los otros métodos definidos por el componente. Esto evita llamadas innecesarias a la API. ### Excepciones Los comportamientos defectuosos inesperados se denominan excepciones. Todos los errores y excepciones son manejados por una clase llamada `ZCException` definida por nuestro Java SDK. Contamos con las clases `ZCServerException` y `ZCClientException` para capturar las excepciones específicas lanzadas por el código del cliente y del servidor.