Re: Can't understand how to do server response with vibed

2015-12-02 Thread Jack Applegame via Digitalmars-d-learn

On Saturday, 28 November 2015 at 18:03:13 UTC, Suliman wrote:
Could anybody help me to understand how to complete HTTP 
response with vibed.


I am sending POST request from AngularJS:

$.post("http://127.0.0.1:8080/my";, total_result);
where total_result is JSON string: [{"QID":3,"AID":3}, 
{"SubAID":[4]}, {"MinArea":"10","MaxArea":"90"}]


Handler is look like:

void action(HTTPServerRequest req, HTTPServerResponse res)
{
   // res.statusCode = 201;
}

I know that I can set statusCode like code above, but problem 
that in Chrome console I am getting:

POST http://127.0.0.1:8080/my 404 (Not Found)
How can I pass to it (from vibed to browser) status code?
If you do not send any response in handler, vibe.d will try to 
match next route (if any). So you should send any response (empty 
string for example).


void action(HTTPServerRequest req, HTTPServerResponse res)
{
res.statusCode = 201;
res.writeBody("");
}



Re: Can't understand how to do server response with vibed

2015-11-30 Thread Sebastiaan Koppe via Digitalmars-d-learn

On Sunday, 29 November 2015 at 07:37:56 UTC, Suliman wrote:
On Saturday, 28 November 2015 at 23:21:21 UTC, Sebastiaan Koppe 
wrote:

On Saturday, 28 November 2015 at 19:05:59 UTC, Suliman wrote:
And also I can't understand difference between 
HTTPClientRequest and HTTPServerRequest


If the application (vibe.d) makes a request, it is the client. 
If the request is made to your application, it is the server.


In your case your angular app is the client, and your vibe.d 
app is the server. Therefor, HTTPServer(Request|Response).


Could you explain me about: HTTPServerRequest and HTTPRequest. 
I can't understand difference.


No idea. Probably HTTPRequest provides common functionality for 
both HTTPServerRequest and HTTPClientRequest. Just guessing.


Re: Can't understand how to do server response with vibed

2015-11-28 Thread Suliman via Digitalmars-d-learn
On Saturday, 28 November 2015 at 23:21:21 UTC, Sebastiaan Koppe 
wrote:

On Saturday, 28 November 2015 at 19:05:59 UTC, Suliman wrote:
And also I can't understand difference between 
HTTPClientRequest and HTTPServerRequest


If the application (vibe.d) makes a request, it is the client. 
If the request is made to your application, it is the server.


In your case your angular app is the client, and your vibe.d 
app is the server. Therefor, HTTPServer(Request|Response).


Could you explain me about: HTTPServerRequest and HTTPRequest. I 
can't understand difference.


Re: Can't understand how to do server response with vibed

2015-11-28 Thread Sebastiaan Koppe via Digitalmars-d-learn

On Saturday, 28 November 2015 at 19:05:59 UTC, Suliman wrote:
And also I can't understand difference between 
HTTPClientRequest and HTTPServerRequest


If the application (vibe.d) makes a request, it is the client. If 
the request is made to your application, it is the server.


In your case your angular app is the client, and your vibe.d app 
is the server. Therefor, HTTPServer(Request|Response).




Re: Can't understand how to do server response with vibed

2015-11-28 Thread Sebastiaan Koppe via Digitalmars-d-learn

On Saturday, 28 November 2015 at 19:10:17 UTC, Suliman wrote:

void action(HTTPServerRequest req, HTTPServerResponse res)
{

}

Here is function what have two call-backs. When it's get 
request it's work as server, when it's send response it's work 
like client or I have wrong logic?


Wrong logic. Its the server that gets the request and the server 
that send the response.


Re: Can't understand how to do server response with vibed

2015-11-28 Thread Sebastiaan Koppe via Digitalmars-d-learn

On Saturday, 28 November 2015 at 18:51:57 UTC, Suliman wrote:

Eghm, sorry. Not req, but res, but again errr:

void action(HTTPServerRequest req, HTTPServerResponse res)
{
writeln(req.writeJsonBody);
}


What you want is `req.json`.

Make sure that the call from angular sets the Content-Type header 
to application/json. But I think that should happen by default.


Re: Can't understand how to do server response with vibed

2015-11-28 Thread Suliman via Digitalmars-d-learn

void action(HTTPServerRequest req, HTTPServerResponse res)
{

}

Here is function what have two call-backs. When it's get request 
it's work as server, when it's send response it's work like 
client or I have wrong logic?


Re: Can't understand how to do server response with vibed

2015-11-28 Thread Suliman via Digitalmars-d-learn
And also I can't understand difference between HTTPClientRequest 
and HTTPServerRequest


For example if I am getting request from web-browser what I 
should use? And why?


Re: Can't understand how to do server response with vibed

2015-11-28 Thread Suliman via Digitalmars-d-learn

On Saturday, 28 November 2015 at 18:57:53 UTC, anonymous wrote:

On 28.11.2015 19:51, Suliman wrote:

Eghm, sorry. Not req, but res, but again errr:

void action(HTTPServerRequest req, HTTPServerResponse res)
{
 writeln(req.writeJsonBody);
}

Error: no property 'writeJsonBody' for type
'vibe.http.server.HTTPServerRequest'

But this method are present in docs:

http://vibed.org/api/vibe.http.client/HTTPClientRequest


req is not an HTTPClientRequest, it's an HTTPServerRequest.

http://vibed.org/api/vibe.http.server/HTTPServerRequest


What difference between HTTPClientRequest and HTTPRequest ?


Re: Can't understand how to do server response with vibed

2015-11-28 Thread anonymous via Digitalmars-d-learn

On 28.11.2015 19:51, Suliman wrote:

Eghm, sorry. Not req, but res, but again errr:

void action(HTTPServerRequest req, HTTPServerResponse res)
{
 writeln(req.writeJsonBody);
}

Error: no property 'writeJsonBody' for type
'vibe.http.server.HTTPServerRequest'

But this method are present in docs:

http://vibed.org/api/vibe.http.client/HTTPClientRequest


req is not an HTTPClientRequest, it's an HTTPServerRequest.

http://vibed.org/api/vibe.http.server/HTTPServerRequest


Re: Can't understand how to do server response with vibed

2015-11-28 Thread anonymous via Digitalmars-d-learn

On 28.11.2015 19:46, Suliman wrote:

And the second question. Why I am getting next error after attempt to
write to console JSON request:

Error: cannot resolve type for res.writeJsonBody(T)(T data int status =
HTTPStatus.OK, string content_type = "application/json; charset=UF-8",
bool allow_chunked = false)

void action(HTTPServerRequest req, HTTPServerResponse res)
{
 writeln(res.writeJsonBody);
}


That's because writeJsonBody's return type is void.

http://vibed.org/api/vibe.http.server/HTTPServerResponse.writeJsonBody


Re: Can't understand how to do server response with vibed

2015-11-28 Thread Suliman via Digitalmars-d-learn

On Saturday, 28 November 2015 at 18:46:05 UTC, Suliman wrote:
And the second question. Why I am getting next error after 
attempt to write to console JSON request:


Error: cannot resolve type for res.writeJsonBody(T)(T data int 
status = HTTPStatus.OK, string content_type = 
"application/json; charset=UF-8", bool allow_chunked = false)


void action(HTTPServerRequest req, HTTPServerResponse res)
{
writeln(res.writeJsonBody);
}


Eghm, sorry. Not req, but res, but again errr:

void action(HTTPServerRequest req, HTTPServerResponse res)
{
writeln(req.writeJsonBody);
}

Error: no property 'writeJsonBody' for type 
'vibe.http.server.HTTPServerRequest'


But this method are present in docs:

http://vibed.org/api/vibe.http.client/HTTPClientRequest


Re: Can't understand how to do server response with vibed

2015-11-28 Thread Suliman via Digitalmars-d-learn
And the second question. Why I am getting next error after 
attempt to write to console JSON request:


Error: cannot resolve type for res.writeJsonBody(T)(T data int 
status = HTTPStatus.OK, string content_type = "application/json; 
charset=UF-8", bool allow_chunked = false)


void action(HTTPServerRequest req, HTTPServerResponse res)
{
writeln(res.writeJsonBody);
}


Can't understand how to do server response with vibed

2015-11-28 Thread Suliman via Digitalmars-d-learn
Could anybody help me to understand how to complete HTTP response 
with vibed.


I am sending POST request from AngularJS:

$.post("http://127.0.0.1:8080/my";, total_result);
where total_result is JSON string: [{"QID":3,"AID":3}, 
{"SubAID":[4]}, {"MinArea":"10","MaxArea":"90"}]


Handler is look like:

void action(HTTPServerRequest req, HTTPServerResponse res)
{
   // res.statusCode = 201;
}

I know that I can set statusCode like code above, but problem 
that in Chrome console I am getting:

POST http://127.0.0.1:8080/my 404 (Not Found)
How can I pass to it (from vibed to browser) status code?