mirror of
https://github.com/sigmasternchen/CShore
synced 2025-03-15 16:18:56 +00:00
added json response in demo
This commit is contained in:
parent
0bb7de5fa2
commit
e1955df2eb
3 changed files with 35 additions and 3 deletions
17
Makefile
17
Makefile
|
@ -1,6 +1,6 @@
|
||||||
CC = gcc
|
CC = gcc
|
||||||
LD = gcc
|
LD = gcc
|
||||||
CFLAGS = -Wall -g -std=c99 -ICFloor/src/ -ICson/src/ -D_POSIX_SOURCE -D_XOPEN_SOURCE=500
|
CFLAGS = -Wall -g -std=c99 -ICFloor/src/ -ICson/src/ -ICson/marshaller/lib/ -D_POSIX_SOURCE -D_XOPEN_SOURCE=500
|
||||||
LDFLAGS = -lpthread -lrt
|
LDFLAGS = -lpthread -lrt
|
||||||
|
|
||||||
CFLOOR_LIB = CFloor/libcfloor.a
|
CFLOOR_LIB = CFloor/libcfloor.a
|
||||||
|
@ -10,7 +10,7 @@ LIBS = $(CFLOOR_LIB) $(CSON_LIB)
|
||||||
OBJS = obj/router.o obj/request.o obj/base_cfloor.o obj/base_cgi.o
|
OBJS = obj/router.o obj/request.o obj/base_cfloor.o obj/base_cgi.o
|
||||||
DEPS = $(OBJS:%.o=%.d)
|
DEPS = $(OBJS:%.o=%.d)
|
||||||
|
|
||||||
DEMO_OBJS = obj/demo.o
|
DEMO_OBJS = obj/demo.o obj/entities.tab.o
|
||||||
|
|
||||||
HAS_MAIN =
|
HAS_MAIN =
|
||||||
NEEDS_MAIN = \
|
NEEDS_MAIN = \
|
||||||
|
@ -30,6 +30,7 @@ base_cgi: CFLAGS += -DBASE_CGI
|
||||||
base_cgi: HAS_MAIN = "yes"
|
base_cgi: HAS_MAIN = "yes"
|
||||||
base_cgi: standalone
|
base_cgi: standalone
|
||||||
|
|
||||||
|
standalone: CFLAGS += -Idemo/
|
||||||
standalone: $(DEMO_OBJS) $(OBJS) $(LIBS)
|
standalone: $(DEMO_OBJS) $(OBJS) $(LIBS)
|
||||||
@$(NEEDS_MAIN)
|
@$(NEEDS_MAIN)
|
||||||
$(LD) $(LDFLAGS) -o $@ $^
|
$(LD) $(LDFLAGS) -o $@ $^
|
||||||
|
@ -38,7 +39,7 @@ $(CFLOOR_LIB):
|
||||||
$(MAKE) -C CFloor/ libcfloor.a
|
$(MAKE) -C CFloor/ libcfloor.a
|
||||||
|
|
||||||
$(CSON_LIB):
|
$(CSON_LIB):
|
||||||
$(MAKE) -C Cson/ libcson.a
|
$(MAKE) -C Cson/ marshaller-lib
|
||||||
|
|
||||||
-include $(DEPS)
|
-include $(DEPS)
|
||||||
|
|
||||||
|
@ -50,11 +51,21 @@ obj/%.o: src/%.c obj
|
||||||
|
|
||||||
obj:
|
obj:
|
||||||
@mkdir -p obj
|
@mkdir -p obj
|
||||||
|
|
||||||
|
Cson/marshaller/marshaller-gen:
|
||||||
|
$(MAKE) -C Cson/marshaller/ marshaller-gen
|
||||||
|
|
||||||
|
obj/entities.tab.o: obj/entities.tab.c
|
||||||
|
$(CC) $(CFLAGS) -MMD -c -o $@ $<
|
||||||
|
|
||||||
|
obj/entities.tab.c: demo/entities.h Cson/marshaller/marshaller-gen
|
||||||
|
./Cson/marshaller/marshaller-gen -o $@ $<
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@echo "Cleaning up..."
|
@echo "Cleaning up..."
|
||||||
@rm -f obj/*.o
|
@rm -f obj/*.o
|
||||||
@rm -f obj/*.d
|
@rm -f obj/*.d
|
||||||
|
@rm -f obj/*.c
|
||||||
@rm -f standalone
|
@rm -f standalone
|
||||||
$(MAKE) -C CFloor/ clean
|
$(MAKE) -C CFloor/ clean
|
||||||
$(MAKE) -C Cson/ clean
|
$(MAKE) -C Cson/ clean
|
||||||
|
|
12
demo/demo.c
12
demo/demo.c
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include <controller.h>
|
#include <controller.h>
|
||||||
|
|
||||||
|
#include "entities.h"
|
||||||
|
|
||||||
|
|
||||||
GET("/", hello);
|
GET("/", hello);
|
||||||
GET("/index.*", hello);
|
GET("/index.*", hello);
|
||||||
|
@ -14,3 +16,13 @@ GET("/foobar", foobar);
|
||||||
response_t foobar(ctx_t ctx) {
|
response_t foobar(ctx_t ctx) {
|
||||||
return fileResponse("demo/foobar.txt");
|
return fileResponse("demo/foobar.txt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GET("/user", user);
|
||||||
|
response_t user(ctx_t ctx) {
|
||||||
|
user_t user = {
|
||||||
|
.username = "overflowerror",
|
||||||
|
.github = "https://github.com/overflowerror"
|
||||||
|
};
|
||||||
|
|
||||||
|
return jsonResponse(200, user_t, &user);
|
||||||
|
}
|
||||||
|
|
9
demo/entities.h
Normal file
9
demo/entities.h
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#ifndef ENTITIES_H
|
||||||
|
#define ENTITIES_H
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
char* username;
|
||||||
|
char* github;
|
||||||
|
} user_t;
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in a new issue