Próbuję wykonać usługę WWW JSON Restful w języku C/C++. Próbowałem Axis2/C i Staff, które działają doskonale do serializacji/deserializacji XML, ale nie dla JSON.Sposoby wdrożenia usługi JEST RESTful w języku C/C++
Odpowiedz
Można spojrzeć na ffead-cpp. Oprócz zapewnienia wsparcia dla json i restfull serwisów internetowych, zawiera również więcej funkcji. Ta struktura może być jednak zbyt duża dla twojej sytuacji.
Istnieje JIRA project rozwiązano obsługę JSON w AXIS2/C.
Zaimplementowałem w moim projekcie i udało mi się z pisarzem (konwencja Badgerfish), ale nadal staram się zarządzać z czytelnikiem.
Wydaje się bardziej skomplikowane zarządzanie ze stosu w pamięci.
Naprawdę nie został rozwiązany. Rozdzielczość "Nie naprawi". Dzieje się tak dlatego, że łatka: 1) dla starych Axis2/C-1.3, 2) jest bardzo niestabilna i nie działa w ogóle, 3) Tylko dla okien. – loentar
Być może zechcesz rzucić okiem na Casablanca wprowadzoną w Herb Sutter's blog.
Czy możemy używać Casablanki w środowisku produkcyjnym? – VansFannel
Codeplex wyłącza się :( – wcochran
Wypróbuj . Jest to prosta, ale prosta struktura usług WWW JSON RESTful fast. Może być zainstalowany na serwerze Apache2, Nginx lub własnym prostym serwerze http.
W odniesieniu do osi 2/C z JSON. Wygląda na to, że oficjalny Axis2/C nie jest już konserwowany. Tak więc Axis2/C staje się przestarzały (ale wciąż działa).
Obsługa JSON dla Axis2/C jest dostępna w projekcie axis2c-unofficial.
Istnieją instrukcje instalacji dotyczące instalacji Axis2/C z obsługą JSON pod Linux, Windows using binary package, Windows from source code.
Możesz wypróbować go przy pomocy personelu WSF przy użyciu przykładu Klienci (REST) w trybie JSON (dostępnym z katalogu kodu kadrowego staff/samples/rest/webclient
).
JSON i JSONPath są obsługiwane dla C i C++ w gsoap z nowym code generator and a new JSON API, aby szybko zacząć.
Dołączono kilka JSON, JSON-RPC and REST examples. Zarządzanie pamięcią jest automatyczne.
Generator kodu może być przydatny. Weźmy na przykład json.org menu.json
fragment:
{ "menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}
}
Komenda gsoap jsoncpp -M menu.json
generuje ten kod, aby zapełnić wartość JSON:
value x(ctx);
x["menu"]["id"] = "file";
x["menu"]["value"] = "File";
x["menu"]["popup"]["menuitem"][0]["value"] = "New";
x["menu"]["popup"]["menuitem"][0]["onclick"] = "CreateNewDoc()";
x["menu"]["popup"]["menuitem"][1]["value"] = "Open";
x["menu"]["popup"]["menuitem"][1]["onclick"] = "OpenDoc()";
x["menu"]["popup"]["menuitem"][2]["value"] = "Close";
x["menu"]["popup"]["menuitem"][2]["onclick"] = "CloseDoc()";
czytanie również analizowany wartości JSON i kod JSONPath mogą być generowane przez to narzędzie.
EDIT
celu wyjaśnienia, wiersza polecenia generator kodu jsoncpp pokazuje kod API do odczytu i zapisu danych w formacie JSON za pomocą pliku .json jako szablon, który uważam, że jest przydatna, aby zapisać czas na napisanie kodu API, aby wypełnić i wyodrębnić dane JSON. Kod zapytania JSONPath można również wygenerować za pomocą tego narzędzia.
dla C++ usługi internetowej, Używam następujący stos:
- ipkn/crow ramy C++ Micro Web
- nlohmann/json dla json serializacji/deserializacji.
- 1. Uwierzytelnianie usługi RESTful
- 2. Różne sposoby wdrożenia DAG w java
- 3. Wersja RESTful usługi?
- 4. Przykład dobrze udokumentowanej usługi RESTful
- 5. Serwer RESTful API w języku C#
- 6. Naprawdę usługa usługi RESTful na żywo
- 7. Co to są usługi sieciowe RESTful?
- 8. Najlepszy sposób na napisanie usługi RESTful "klient" w .Net?
- 9. Co oznacza aplikacja internetowa RESTful?
- 10. Dlaczego istnieją niepotrzebne sposoby importowania w języku Python?
- 11. Jakie są teraz zaawansowane sposoby obsługi skryptów w języku Java?
- 12. Trzy sposoby drukowania w języku Python - kiedy używać każdego?
- 13. Korzystanie z RESTful API - czy jest bezpieczny?
- 14. Czy RESTful JSF jest możliwy?
- 15. Usługi Web Service REST w języku C#
- 16. Usługi sieci Web RESTful: próby osiągnięcia HATEOAS z niestandardowym XML
- 17. Jak skonfigurować usługi RESTful HTTP i HTTPS WCF 4?
- 18. Konfigurowanie usługi RESTful dla pliku Backbone.js z apache i windows
- 19. Jaka jest najszybsza kolekcja w języku C# do wdrożenia kolejki priorytetyzacji?
- 20. JAX-WS vs JAX-RS Dla usługi sieciowej RESTful
- 21. Zabezpieczanie wywołań API z poziomu domeny za pomocą usługi RESTful
- 22. Jak uzyskać dane JSON z usługi RESTful przy użyciu Pythona?
- 23. Co jest potrzebne do utworzenia RESTful API Server w Javie?
- 24. Różne sposoby określania bibliotek do gcc/g ++
- 25. Co oznacza CC? = W pliku Makefile?
- 26. Który wybrać: ASP.NET MVC lub RESTful WCF?
- 27. mailto z wieloma adresami cc
- 28. RESTful: komunikacja dwukierunkowa
- 29. Usługa sieci Web RESTful generuje automatycznie WADL
- 30. Jak konsumować restful Service w .NET?
Przyjemne pytanie, ale skorzystaj z mojej rady: jeśli możesz zrobić tę usługę internetową w Javie (lub innym przyjaznym dla systemu zorientowanym na usługi sieciowe) - zrób to. Przesyłanie wiadomości za pomocą materiałów o niskim poziomie, które oferuje C++, jest świetne do nauki, ale spowolni to w większości przypadków. – Poni
Poni ma rację. Nawet jeśli "wykonasz własną" usługę Java, (używając, powiedzmy, Jetty i Gson), możesz znaleźć coś prostego w kilka godzin, znalazłem. Mogą istnieć struktury, które wykonują wszystkie czynności serwletu dla ciebie, ale nic od razu nie przychodzi ci do głowy. – Tom
@poni i Tom. A co z szybkością, co jeśli chciałbym napisać framework json i chciałem, żeby był cholernie szybki? Czy c \ C++ nie byłby dobrym pomysłem? – gideon