https://github.com/luismisanve/csharpphp_api
Comunicate a C# with a PHP REST APIs
https://github.com/luismisanve/csharpphp_api
apache asp-net-core csharp mysql php rest-api swashbuckle visual-studio xampp
Last synced: 5 months ago
JSON representation
Comunicate a C# with a PHP REST APIs
- Host: GitHub
- URL: https://github.com/luismisanve/csharpphp_api
- Owner: LuisMiSanVe
- License: apache-2.0
- Created: 2024-09-23T14:05:36.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-16T05:58:48.000Z (7 months ago)
- Last Synced: 2025-05-16T06:32:48.632Z (7 months ago)
- Topics: apache, asp-net-core, csharp, mysql, php, rest-api, swashbuckle, visual-studio, xampp
- Language: PHP
- Homepage:
- Size: 1.39 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.es.md
- License: LICENSE
Awesome Lists containing this project
README
> [Ver en ingles/See in english](https://github.com/LuisMiSanVe/CSharpPHP_API/tree/main)
# 🌐 Proyectos de Comunicación entre REST APIs de C# y PHP
[](https://dotnet.microsoft.com/en-us/languages/csharp)
[](https://www.php.net/)
[](https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet)
[](https://github.com/domaindrivendev/Swashbuckle.AspNetCore)
[](https://www.apachefriends.org/es/index.html)
[](https://httpd.apache.org/)
[](https://www.mysql.com/)
[](https://visualstudio.microsoft.com/)
[](https://code.visualstudio.com/)
El proyecto consiste en dos REST APIs que se comunican entre ellas para aumentar la distancia entre el usuario y la base de datos.
## 📋 Prerequisitos
Antes de nada, necesitarás servidores para alojar las REST APIs, puedes apañartelas perfectamente con [XAMPP](https://www.apachefriends.org/es/index.html) o programas similares que permiten levantar servidores en local.
> [!NOTE]
> Usaré XAMPP para explicar la funcionalidad de los proyectos.
Una vez XAMPP esté instalado, copia la carpeta de PHPPProject y pegalo en la carpeta 'htdocs' dentro de la carpeta de instalación de XAMPP.
En Windows debería ser algo como `C:\xampp\htdocs`.
Ahora levanta los servidores de Apache y MySQL en XAMPP y dale clic a 'Admin' en la sección de MySQL lo que abrirá en tu navegador por defecto PhpAdmin, el administrador de bases de datos en web.
Crea una nueva base de datos llamada 'phprest' y ejecuta el siguiente comando SQL para crear la tabla principal:
```
CREATE TABLE `bas_categoria` (
`id_categoria` int(11) NOT NULL AUTO_INCREMENT,
`descripcion` varchar(100) DEFAULT NULL,
`estatus` varchar(15) DEFAULT NULL,
PRIMARY KEY(`id_categoria`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
```
Ahora solo tienes que ejecutar CategoriesApi para usar la REST API de PHP desde la REST API de C#
## 📂 Archivos
En PHP:
- [index.php](https://github.com/LuisMiSanVe/CSharpPHP_API/blob/main/PHPProject/index.php): Parte principal de la API, es el que ejecuta el código.
- [models/bas_categoria.php](https://github.com/LuisMiSanVe/CSharpPHP_API/blob/main/PHPProject/models/bas_categoria.php): tiene definidas las diferentes consultas y métodos.
- [controllers/bas_categoria_controller.php](https://github.com/LuisMiSanVe/CSharpPHP_API/blob/main/PHPProject/controllers/bas_categoria_controller.php): contiene las funciones que se ejecutan directamente en 'bas_categoria.php'.
- [config/database.php](https://github.com/LuisMiSanVe/CSharpPHP_API/blob/main/PHPProject/config/database.php): Crea la conexión con la base de datos.
- [config/definiciones.php](https://github.com/LuisMiSanVe/CSharpPHP_API/blob/main/PHPProject/config/definiciones.php): Tiene declarados los parametros de la conexión.
Si creasemos una linea de tiempo de la ejecución seria algo asi:
1. 'index' empieza a ejecutar el código.
2. 'database' recoge los parametros de conexión de 'definiciones' y se conecta al Servidor de la base de datos.
3. Ejecutamos el endpoint de la REST API de C#.
4. 'index' llama a 'bas_categoria_controller' para ejecutar lo pedido.
5. 'bas_categoria_controller' llama a 'bas_categoria' y ejecuta el código.
6. 'index' devuelve el resultado.
7. La REST API de C# lo recoge y lo muestra al usuario.
## 💻 Tecnologías usadas
- Lenguajes de programación: [C#](https://dotnet.microsoft.com/es-es/languages/csharp), [PHP](https://www.php.net/)
- Framework: [ASP.NET Core](https://dotnet.microsoft.com/es-es/apps/aspnet) (Proyecto creado con el Framework [.Net](https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet) 8.0)
- NuGets:
- [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) (6.4.0)
- Otros:
- [XAMPP](https://www.apachefriends.org/es/index.html) (3.3.0)
- [Apache](https://httpd.apache.org/)
- [MySQL](https://www.mysql.com/)
- [PhpMyAdmin](https://www.phpmyadmin.net/)
- IDEs Recomendados:[Visual Studio 2022](https://visualstudio.microsoft.com/) (C#), [VS Code](https://code.visualstudio.com/) (PHP)