www.state-it.info

Gran base de respuestas a las preguntas de los desarrolladores
Header decor

Como crear una API REST en C++?

Alf162 2015-08-27 08:27:53

hola.
Debe crear un servidor http, que se llevará una entrada de JSON. Dime, ¿qué herramienta en c++ es mejor utilizar para estos fines?

fomistoklus 2015-08-27 08:30:20

además de las ventajas de las opciones de большн no?


Alf162 2015-08-27 08:32:38

no. y en este, el principal problema de


AtomKrieg 2015-08-27 08:43:13

Mientras más opciones en google no convienen?


Total answers: 5

sitev_ru 2015-08-27 09:04:58

Puedo aconsejar nuestra decisión, incluso el sitio funciona en nuestro servidor web sitev.ru
El código fuente aquí: github.com/sitev

Le asesoramos por skype o icq - escribir...

AxisPod 2015-08-27 13:23:02

Multiplexación no, nginx + php-fpm sólo va a romper tu C++ servidor, un poco la carga de sube y el sitio va a ser las delicias de un 100% de carga de CPU. Sus contenedores, ¿por qué?

usleep(1000) en el ciclo del servidor, hmm, esto no es lo peor.

Como a menudo lo перезапускаете, fluyendo como дуршлак.


sitev_ru 2015-08-27 14:09:09

:) estoy de acuerdo, el servidor de alison en la rodilla... la principal condición para que funcione... ¿Qué es la multiplexación, explique pliz? La carga mantiene средненькую, hasta que se alcanza la... Su recipientes a sí-es decir, que no hay, empuje en el código, pliz... es hora de usleep(1000) sustituir en epoll... Fluye como дуршлак? De nuevo: empuje en el código, pliz... Bueno y no especialmente en tiempo de afilar... hace tiempo que no касаемся сервака - escribimos CMS... el Proyecto se desarrolla en el tiempo libre, las críticas a la bienvenida...


sitev_ru 2015-08-27 14:32:50

AxisPod: Y me puede y no necesita multiplexores? Tengo en cada consulta tu thread se crea...


AxisPod 2015-08-27 14:37:23

sitev_ru: new std::thread, y donde la limpieza? Ciertamente, podría склепать en la pila una vez para todos igual детачите.


AxisPod 2015-08-27 14:45:12

sitev_ru: Bueno y por ejemplo no he visto en general donde limpiar List. Asignar NULL a un puntero no borra la memoria a la que apunta. Sí y de la cultura de la programación no se nota. Para el trabajo con la memoria en C++ dispone de sus propias herramientas, pero aquí se usa C. Código simplemente extraño, las entidades a menudo no cumplen sus obligaciones.


sitev_ru 2015-08-27 14:47:21

la Limpieza... quitado Temporalmente, el thread de todos modos termina, solo queda el puntero en el thread... Como de costumbre, temporal - lo más estable)) será Necesario почистит... gracias


sitev_ru 2015-08-27 14:53:50

"no he visto en general donde limpiar List" - ¿qué? en qué lugar? "Sí y de la cultura de la programación no se nota" - tenemos más-note cultural, aunque, seguramente, no en todas partes... "Para el trabajo con la memoria en C++ dispone de sus propias herramientas, pero aquí se usa C" - es posible que algo no está bien... la parte de código que se hayan copiado de antiguos proyectos... "el Código simplemente extraño, las entidades a menudo no cumplen sus obligaciones." - puede ejemplo?


AxisPod 2015-08-27 19:41:01

sitev_ru: "No hay nada más permanente que temporal". Bueno en list, la memoria se asigna a realloc, en el destructor simplemente memory = NULL, es la memoria de bien, no почистит. De la limpieza étnica en los destructores simplemente no.


Nipheris 2015-08-27 09:23:54

Compatibilidad con HTTP (en la base de ASIO), el trabajo con URI y otros básicos para la web de las cosas: cpp-netlib.org
JSON: www.codeproject.com/Articles/20027/JSON-Spirit-A-C... . Hay форки en github.com mucho y en otras bibliotecas, pero personalmente me gusta más este.

La primera либа aún no la liberación de la versión, pero la API se ha estabilizado, todo funciona. Más que los años entran para малонагруженного servidor (probado en localhost), se puede y para muchos de los visitantes, si se pone por nginx para la seguridad.
P. S. Repentina de la alternativa: FastCGI (https://savannah.nongnu.org/projects/fastcgipp/) + normal servidor web.

MAKAPOH 2015-08-27 11:30:01

Дополню referencia a una biblioteca de trabajar con json JSON for Modern C++. Él no le gustaba, pero se ve bien.


risik 2015-08-27 11:13:14

Para un servidor http en C++ hay, por ejemplo, sólo un POCO. pocoproject.org
La verdad, no estoy seguro de si hay un JSON de la caja.

AxisPod 2015-08-27 13:44:26

Bastante simple ejemplo de servidor tiene en boost::asio (bueno, sin буст) y el solicitante en C++17. A continuación, puede ver en el lado de la libevent (es la realización de un servidor http), libev, libuv. En esta se puede склепать muy adecuado con el servidor. Pero esto requiere saber велосипедить HTTP apoyo.

Especificado anteriormente cpp-biblioteca de red implementa el trabajo con el protocolo HTTP, pero va muy напряжно y mucho tiempo, más código que escribe, más tiempo tendrán que dormir, pueden ser horas.

Una vez más indicada anteriormente POCO tiene bastante mediocre la configuración de la red, pero si la carga grande no se puede atrevidamente yuzat.

Una vez más ligeras HTTP servidores de la oscuridad, pero aquí la calidad de la implementación es necesario comprobar la.

Se puede tomar como nginx o apache y склепать módulos para ellos, pero aquí es fácil perder toda eficacia nginx, si de correr detrás de los datos en la base de datos. Con apache será más fácil.

Bueno, de nuevo, se halló https://github.com/eidheim/Simple-Web-Server , por lo menos una solución completa a boost::asio.

Nipheris 2015-08-27 15:49:38

> va muy напряжно y mucho tiempo
en serio? de la oe Acerca de Usted sobre la либу o sobre proyectos con ella? Si la либу - bueno, estas son las ventajas, las plantillas y así sucesivamente, sí, y ¿cuál es la diferencia, si una vez recoger necesario. Si sobre el proyecto, que su инклудит - no sé ustedes, tengo el mismo JSON Spirit отъедал mucho más tiempo del compilador, hasta que lo sacaron .lib


zenden2k 2015-09-03 07:58:10

https://github.com/civetweb/civetweb
la falta de cuántos threads de tantas conexiones

Preguntas relacionadas:

Footer decor

© www.state-it.info | Base of answers to questions for developers and programmers.