1. Creando
Endpoint
HTTP
Muchas
veces
necesitas
crear
un
web
services
para
que
otras
aplicaciones
se
comuniquen
con
nosotros
y
asi
tener
varias
aplicaciones
compartiendo
información
permitiendo
así
que
los
procesos
de
la
empresa
fluyan
porque
todas
sus
aplicaciones
estan
comunicandose.
Pero
en
los
momentos
donde
tenemos
que
un
web
services
en
.net
no
hace
nada
simplemente
pasarle
los
datos
a
un
stored
procedure,
nos
lleva
a
pensar
si
en
realidad
es
necesario
crear
este
web
service?,
es
necesario
crear
este
componente
para
solo
publicar
el
procedimiento
de
mi
base??
Es
aquí
conde
los
endpoints
nos
pueden
ayudar,
es
una
manera
de
publicar
un
procedimiento
almacenado
como
web
services
tan
solo
con
una
sentencia
sql
como
la
siguiente:
create
endpoint
ReqInsXml
state
=
started
as
http
(
path
=
'/App/ReqInsXml',
authentication
=
(digest),
ports
=
(clear),
site
=
'testdomain.com'
)
for
soap
(
webmethod
'ReqInsXml'
(name=AppDb.dbo.sprReqInsXmlV2'),
batches
=
disabled,
login_type
=
windows,
wsdl
=
default,
database
=
'AppDb',
namespace
=
'http://tempUri.org/'
)
2. Ahora
expliquemos
lo
que
hace:
Lo
primero
creo
que
es
lo
suficientemente
explicito,
es
el
comando
para
crear
el
endpoint
e
ReqInsxml
es
el
nombre.
state
=
indica
si
al
crearlo
se
inicia
o
no
el
endpoint.
as
http=
lo
que
indica
es
que
va
utilizar
el
puerto
80
para
comunicarse
tal
como
lo
hace
un
web
service.
el
path
es
la
ruta
del
webservice,
ojo
es
importante
algo
que
notar
aqui.
Digamos
que
tengan
una
aplicacion
dentro
del
Directorio
/App
en
su
servidor
web
si
yo
solo
dejo
en
path
/App,
entonces
cualquier
peticion
a
http://testdomain.com/App
ya
no
resolverá
la
aplicacion,
lo
que
resolveria
sera
el
Endpoint,
por
eso
hay
que
tener
cuidado.
authentication
es
para
indicar
si
es
basic,
digest,
integrated
(windows
authentication),
kerberos.
ports
si
esta
clear
significa
http,
caso
contrario
utilicen
SSL
para
https,
ojo
van
a
tener
que
instalar
un
certificado
para
utilizar
SSL.
site
=
en
este
ejemplo
es
por
decir
un
dominio
o
algo
como
localhost.
for
soap,
es
para
que
se
genere
el
soap
envelope.
webmethod
es
para
indicar
el
webservice
en
si,
y
la
propiedad
name
es
el
nombre
del
procedimiento
almacenado
o
funciona
sql
que
se
va
a
publicar.
batches
es
para
indicar
si
maneja
batches
de
pedidos
o
no.
login_type
puede
ser
Mixed
o
Windows,
mixed
significa
que
en
lugar
de
usar
un
usuario
windows,
utilizan
un
usuario
sql
o
tambien
uno
windows.
Ojo
aqui
es
importante
saber
si
el
servidor
SQL
permite
autenticacion
mixed,
es
decir
utilizar
usuarios
SQL
caso
contrario
si
solo
permite
windows,
al
configurar
endpoint
para
mixed
va
dar
un
error.
wsdl
=
es
el
web
service
definition
language,
que
es
basicamente
una
descripcion
del
servicio
web.
Default
es
decir
que
utilice
el
formato
de
sql
predeterminado
o
nosotros
podemos
dar
otro
tipo.
database
=
la
base
de
datos
a
la
que
va
a
pertenecer
este
endpoint.
namaespace
es
el
namespace
xml
con
el
que
se
generara
el
wsdl